如何访问Web worker中的变量?

时间:2014-09-06 07:31:05

标签: javascript

function set_worker(){

        demo_worker = new Worker("worker.js");

        demo_worker.onmessage = function(event){
            demo_A = event.data;
            console.log(demo_A); // success. I get some result
        }

    }
    set_worker();
    console.log(demo_A); //undefined. i get undefined..

我想访问" demo_A"。为什么demo_A undefined?有没有办法访问demo_A?

1 个答案:

答案 0 :(得分:1)

<强> 1。将demo_A全局。

您已在demo_worker.onmessage()函数中定义了变量。     它的上下文将仅保留在函数内部。使其成为全局。

<强> 2。收到消息时触发某些功能。

收到邮件时会更新

demo_A,因此如果您在收到邮件之前打印demo_A,则可能是undefined或者可能有一些旧值。

var demo_A ;//make it global
somefunction function(){//triggered when msg recieved 
  console.log(demo_A); 
  //do other stuff
}
function set_worker(){

        demo_worker = new Worker("worker.js");

        demo_worker.onmessage = function(event){
            demo_A = event.data;
             console.log(demo_A);
            somefunction(); // trigger some function 
        }

    }
    set_worker();