Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在工作人员忙碌的情况下,是否仍会收到发送给该工作人员的消息?_Javascript_Web Worker - Fatal编程技术网

Javascript 在工作人员忙碌的情况下,是否仍会收到发送给该工作人员的消息?

Javascript 在工作人员忙碌的情况下,是否仍会收到发送给该工作人员的消息?,javascript,web-worker,Javascript,Web Worker,我有一个系统,我向worker发送一个大数组,然后worker使用一个库来压缩它。压缩需要很长时间,这会使工作人员很忙。我想知道在工作人员仍然忙碌时是否会收到发送给该工作人员的进一步消息。这些信息会丢失吗?它们是否也会排队并最终由工作人员处理?是的,一旦工作人员完成当前正在处理的内容,它将能够处理队列中的下一条消息。下面是一个例子: //https://stackoverflow.com/questions/10343913/how-to-create-a-web-worker-from-a-

我有一个系统,我向worker发送一个大数组,然后worker使用一个库来压缩它。压缩需要很长时间,这会使工作人员很忙。我想知道在工作人员仍然忙碌时是否会收到发送给该工作人员的进一步消息。这些信息会丢失吗?它们是否也会排队并最终由工作人员处理?

是的,一旦工作人员完成当前正在处理的内容,它将能够处理队列中的下一条消息。下面是一个例子:

//https://stackoverflow.com/questions/10343913/how-to-create-a-web-worker-from-a-string
//我放入了一个堆栈片段进行现场演示
//在实际项目中,将其放在单独的文件中
常数workerFn=()=>{
self.onmessage=()=>{
self.postMessage('Worker message callback just fired');
//昂贵的东西
for(设i=0;i<2e9;i++){
}
self.postMessage(“昂贵的操作结束”);
};
};
常量workerFnStr=`(${workerFn})(;`;
constblob=newblob([workerFnStr],{type:'text/javascript'});
const-worker=new-worker(window.URL.createObjectURL(blob));
worker.onmessage=({data})=>console.log(数据);
worker.postMessage(null);
worker.postMessage(null)