我从多个网址抓取内容。 Fetch api全面使用promises。
所以我的一个请求的代码看起来像这样
fetch(url).then((response)=>response.text()).then(function(html) { //stuff });
现在我有一系列网址和多个电话将如何知道所有电话是否已经完成。
我尝试使用Promise.all
,但如果你看到每个请求都有两个承诺。有没有更好的方法,也是Promise.all支持也不是那么好。
答案 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`))