同时使用 Javascript Web Worker 和 Async?

Using Javascript Web Worker and Async together?

有人同时使用 Web Worker 和 Async 吗?有人投反对票吗?

例如,如果我想发出 1000 个异步调用并等待它们完成,它是同步的,所以速度很慢。虽然它不会阻塞主线程,但是一个一个地等待很慢。

我可以等待创建 1000 个 Web Worker 并并行发送 1000 个提取(每个 worker 一个提取)的单个异步方法吗?每个 web worker 将等待获取结果和 post 结果返回。在创建 1000 个 Web Worker 的主要异步方法上,它收集了所有 1000 个结果。完成后,它完成该方法,主线程将从那里继续?

我没有看到那里的例子。我想知道为什么。这是一个坏主意吗?或者也许有一个框架?

谢谢

您不需要工作人员,因为 fetch 不会阻塞主线程。最重要的是会有很大的开销。

fetch 默认情况下已经完成了您想要的操作,您不应该等待每个调用。

您可以使用 Promise.allSettled 将一系列承诺转换为单个结果承诺,然后您可以 await

const promises = urls.map(url => fetch(url));
const results = await Promise.allSettled(promises);