![](/img/trans.png)
[英]How to post a message from a web worker to another web worker Javascript
[英]How to “properly” yield in a Javascript worker for message processing?
在 Worker 中,我需要定期讓出以允許事件循環安排傳入消息處理。—目前我使用新的 promise 和setTimeout()
來做到這一點。
addEventListener('message', () => console.log('reading incoming message'));
async function work() {
while (true) {
// do a piece of work
await new Promise(resolve => setTimeout(resolve, 0));
// break if ordered via message
}
}
work();
有沒有一種更緊湊的方式來自願放棄處理?——感覺好像我在這里遺漏了什么:這看起來是一項非常常見的任務,但沒有“自然”的方式去做?
您可以使用生成器函數,它至少在語義上更清楚 function 的行為方式,但可能不會比異步function 更“緊湊”。
要將控制權留給消息隊列,您可以等待其他消息隊列(即 MessageChannel 中的一個),這會比setTimeout
更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.