为什么postMessage会崩溃[undefined]的数组

时间:2016-08-04 17:16:53

标签: javascript arrays google-chrome web-worker

与此问题相关:Javascript worker.postMessage shrinks empty array

当一个包含undefined元素的数组被赋予Worker.prototype.postMessage时,到达的数组已被搞乱。它的长度保持不变,但不再可以使用.map.reducefor...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])

0 个答案:

没有答案