JavaScript 函数可以检查它是否在 Web Worker 线程上运行吗?

Can a JavaScript function check if its being run on a Web Worker thread?

本文关键字:线程 Worker 运行 Web 函数 检查 是否 JavaScript      更新时间:2023-09-26

我正在编写一个javascript函数,如果它在Web Worker上被调用,我想执行唯一的行为。

在不向调用方传入的函数签名添加提示的情况下,有没有办法在函数本身中对此进行测试? 即:

function foo() {
    var is_being_run_on_web_worker = ???;
    if (is_being_run_on_web_worker) {
        ...
    }
}

好吧,很多东西通常无法从 Web worker 访问,比如窗口对象。您可以检查窗口是否未定义。当然,有人可以覆盖作用域中的窗口对象,所以这不是很健壮。