javascript - 进行多个获取 api 调用如何检查所有调用是否已完成?

标签 javascript html asynchronous promise ecmascript-6

<分区>

我正在从多个网址抓取内容。 Fetch api 到处都使用 promises。

所以我的一个请求代码是这样的

fetch(url).then((response)=>response.text()).then(function(html) {//stuff });

现在我有一组 url 并且将进行多个调用我怎么知道是否所有调用都已完成。

我尝试使用 Promise.all 但如果您看到每个请求都有两个 promise 。有没有更好的方法,Promise.all 支持也不是很好。

最佳答案

假设您有一个名为 urls

的 url 数组
// separate function to make code more clear
const grabContent = url => fetch(url)
     .then(res => res.text())
     .then(html => (/* process html here */))

Promise
    .all(urls.map(grabContent))
    .then(() => console.log(`Urls ${urls} were grabbed`))

关于javascript - 进行多个获取 api 调用如何检查所有调用是否已完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38150791/

相关文章:

javascript - 传单不接受边界

java - Spring异步线程 hibernate

java - 在主线程中等待 HTTP 请求

asynchronous - Blazor InvokeAsync 与 await InvokeAsync

javascript - 如何使用JS打印HTML中下拉框中选择的值

javascript - 将回调 onSuccess 返回值提升为 Caller Function 返回值

javascript - 消失的对象函数?

Javascript:将文字 HTML 加在一起导致循环

HTML CSS 取尽可能多的高度

javascript - 显示带有换行符的动态创建的单选按钮