如何在Web工作线程中使用javascript变量

How to use javascript variable in Web worker thread

本文关键字:javascript 变量 线程 Web 工作      更新时间:2023-09-26

我需要在Web worker线程中更新我的javascript数组。我无法在Web worker线程中访问我的javascript数组。

我的代码是:
self.onmessage = function(event) {
var array = new Uint8Array(event.data);
var sum = 0;
var temparray = new Array();
for(var list = 0; list < array.length; list++ ){
    var temp = myMethod(array[list]); //some operation
    availableArray.push(temp);
}
 self.postMessage("success");
}   

我得到这个错误:availableArrayis未定义availableArray.push(临时);

你定义了2个变量是数组(或类似数组的对象):var array = new Uint8Arrayvar temparray = new Array,但然后在循环中你使用一个变量,没有在任何地方声明availableArray,我怀疑你想改变该变量为temparray
错误消息非常有意义:availableArray在任何地方都没有定义。您使用它作为一个数组,并在其上调用push方法。然而,在默认情况下,只要你使用一个没有声明过的变量,JS就会为你创建一个新变量。当然,未初始化变量的默认值是undefinedundefined没有push方法,因此出现错误。

然而,只是一个小小的评论,虽然:在JS new Array实际上是不鼓励的。最好使用数组文字表示法:

var temparray = [];

更短更安全