javascript - 手动更新 Web Worker 消息

标签 javascript dom-events web-worker

我有一个网络 worker ,我试图在其中运行尽可能少的异步代码。

我希望在我的网络工作线程中有一个 while 循环,同时仍然允许处理消息。有没有办法手动更新浏览器中的事件系统?或者至少更新网络 worker 的消息?

Node.js 中似乎有类似的内容(process._tickDomainCallback()),但到目前为止我还没有找到任何适用于 Web 的内容。

使用setTimeout不是一个选项。我想要一个解决方案或一个明确的答案,这是根本不可能的。

// worker.js

self.onmessage = function(e) {
   console.log("Receive Message");
};

while (true) {
  UpdateMessages(); // Receive and handle incoming messages

  // Do other stuff
}

最佳答案

不确定您的上下文在这里...我遇到了一个问题,浏览器端 Web Audio API 事件循环在不合时宜的时刻被来 self 的 Nodejs 服务器的 WebSocket 流量中断,因此我添加了一个 WebWorker 中间层来释放阻止浏览器事件循环中断

WebWorker 处理了所有网络流量,然后用数据填充了一个循环队列...当浏览器事件循环认为自己可用时,它从这个共享队列中提取数据(使用可传输对象缓冲区),因此永远不会被中断,因为它是一个发起对 WebWorker 的调用

我感受到你的痛苦,但是这种方法使事件循环保持愉快......由于 WebWorker 实际上在自己的线程上并且从浏览器端正在执行异步工作,因此无需最小化异步代码

关于javascript - 手动更新 Web Worker 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079567/

相关文章:

javascript - 如何使用 javascript 下载网页的整个 HTML?

javascript - 括号内带有参数的 REST API URL 资源

javascript - 当元素通过 ngIf 变得可见时触发事件

javascript - 如何在关闭时销毁 YUI 面板?

javascript - 从本地文件系统提供的 Webworker 不工作

javascript - 在 Angular 应用程序中使用 Webworkers(服务 worker 在 angular-cli 中缓存数据访问)

javascript - JS中的 "search"字/命令是什么意思?

Javascript DOM编码的html代码问题

javascript - 使用 React 将 onClick 事件添加到组元素 (svg)

javascript - 如何将页面上的任何特定链接重定向到特定网址?