多个fetch api调用如何检查所有调用是否已完成?

时间:2016-07-01 17:14:22

标签: javascript html5 asynchronous promise ecmascript-6

我从多个网址抓取内容。 Fetch api全面使用promises。

所以我的一个请求的代码看起来像这样

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

现在我有一系列网址和多个电话将如何知道所有电话是否已经完成。

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

1 个答案:

答案 0 :(得分:20)

假设您有一组名为urls

的网址
// 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`))