我似乎无法在任何地方找到明确的答案。 我有非常简单的POC,可以同步和异步方式计算相同的功能。 Worker.js onmessage = function(e) {
var s = new Date().getTime();
i = 0;
var avg = Math.random();
while (i < e.data){
avg = (av
我想绕过承诺,以及JavaScript如何处理它的队列和事件循环等。 我认为,如果我在承诺内部放置一个缓慢的同步函数,那么该慢速同步函数将被委托到后台,我可以使用.then来处理它,当它完成。 function syncSleep(ms){
var end = new Date().getTime() + ms;
var start = new Date().getTime()
Javascript允许将缓冲区从源线程转移到工作线程。否则,ArrayBuffer被复制,然后传递给worker。转移缓冲不在原线[1]接近(“阉割”): // create data that can be transfered
var arr = new Uint8Array(5);
// outputs: 5
console.log(arr.buffer.byteLength);
如果我试图通过一个JavaScript文件中使用网络工作者,铬抛出一个错误 - Uncaught SecurityError: Failed to create a worker: script at '(path)/worker.js' cannot be accessed from origin 'null'. 但它可以让他们,如果我们直接通过HTML中使用。 Chrome can't loa