在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);