与此问题相关:Javascript worker.postMessage shrinks empty array
当一个包含undefined
元素的数组被赋予Worker.prototype.postMessage
时,到达的数组已被搞乱。它的长度保持不变,但不再可以使用.map
,.reduce
,for...in
等进行迭代。
以下代码输出2 0
。这是一个错误,还是某种预期的行为?如果您传递具有部分值[undefined, 2]
或[1, undefined]
的数组,则会发生相同的情况。
var response = "self.onmessage=function(msg){console.log(msg.data.length, msg.data.reduce(function(i){return ++i;},0))}";
var blob = new Blob([response], {type: 'application/javascript'});
var worker = new Worker(URL.createObjectURL(blob))
worker.postMessage([undefined, undefined])