如何并行发出多个 http 请求并独立处理每个响应?



在Typescript中,如何并行发出多个http请求并独立处理每个响应?

我读过这样的帖子: https://melvingeorge.me/blog/do-multiple-fetch-requests-parallel-javascript?msclkid=27e3e64fbb6611ec99bd559527fe2a91 并行解析多个抓取请求

两者都建议使用"Promise.all",在我看来,只有当所有请求的响应返回时,才会进行处理。

我的问题是我如何在 paraell 中发出请求并在每个响应返回时处理它们? 或者这是不可能的,因为 JavaScript 是单线程的?

谢谢。

你对Promise.all是对的,这是为了等到一组Promise都解决。它创建一个新Promise,该仅在用于创建它的所有Promise都解析后解析,然后将它们解析的值数组传递给"all"Promise。您仍然可以并行发出请求,但此功能适用于您希望在处理结果之前等待所有请求都解决的情况。

如果您只需要在解析时处理每个Promise,那么您只需将回调绑定到它们并发送所有请求即可。当每个Promise解析时,将执行其处理程序。不需要特殊的额外代码。

像这样的简单方法将允许您发出多个请求,并在Promise解析时处理每个请求。

fetch(url1).then(handleRequest1).catch(handleError1);
fetch(url2).then(handleRequest2).catch(handleError2);
fetch(url3).then(handleRequest3).catch(handleError3);

最新更新