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

Javascript 进行多个fetch api调用如何检查所有调用是否已完成?,javascript,html,asynchronous,promise,ecmascript-6,Javascript,Html,Asynchronous,Promise,Ecmascript 6,我正在从多个URL抓取内容。fetchapi到处使用承诺 我的one请求代码如下所示 fetch(url).then((response)=>response.text()).then(function(html){//stuff}) 现在我有了URL数组,将进行多个调用,如何知道所有调用是否已完成 我尝试使用了Promise.all,但是如果你看到每个请求都有两个承诺。有没有更好的办法,也承诺。所有的支持也不是那么好 假设您有一个名为url的url数组 // separate function

我正在从多个URL抓取内容。fetchapi到处使用承诺

我的one请求代码如下所示

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

现在我有了URL数组,将进行多个调用,如何知道所有调用是否已完成


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

假设您有一个名为
url的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`))

承诺。只要您链接请求,这里的所有
都可以正常工作。任何支持
fetch
的地方,
Promise
也会支持。好的,你能给我一个例子,如果你有一组url,你会如何使用Promise.all
Promise.all(url.map(url=>fetch(url).然后(res=>res.text())。然后(html=>(/*stuff*/)。然后(()=>console.log('所有url都被抓取和处理过了))
谢谢@YuryTarabanko如果你摆出回答的姿势,我会接受的。你也可以做
承诺。所有([url1,url2])。然后()well@clurect-这还不够。
Promise.all()
接受一个承诺数组。如果只向它传递一个URL数组,它将没有任何用处。@clrect
URL
是一个字符串数组(来自OP:现在我有了一系列URL)。用承诺来包装它没有多大意义。啊,是的,我的错。它应该是承诺。