【发布时间】:2020-06-10 02:37:36
【问题描述】:
在 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();
有没有一种更紧凑的方式来自愿让步处理?——感觉好像我在这里遗漏了一些东西:这看起来像是一项超级常见的任务,但没有“自然”的方式来完成它?
【问题讨论】:
-
与上面类似的代码,但 await/promise 拆分以减少重新进入的延迟,以防万一很重要:stackoverflow.com/a/62313956/825924
标签: javascript asynchronous async-await event-loop