我有一大段代码(用 Emscripten 编译)在网络工作者中运行。该页面使用一个 postMessage 在 worker 中启动一项任务,当 worker 完成时,它会发送另一个 postMessage。伟大的。但是,我想添加一个新功能,该功能需要我在执行过程中暂停工作人员,通过 postMessage 将消息踢回浏览器,等待用户通过 postMessage 提交有效响应,然后完成执行. 但是,我想不出任何有效的方法。我试图让工作人员在无限循环中等待,直到在消息到达时设置控制变量失败,因为无限循环阻止了工作人员的消息处理程序的执行。我可以通过抛出异常来打破工作者执行,但是我不知道如何恢复执行。
有没有人有任何想法?