0

我需要将所有结果推送到一个进行异步 http 调用的数组中,但我需要等到所有调用都完成。

async function(){
  const arrayWithResults = [];
  const urls = ['someurl.com', 'otherurl.com'];
  urls.map( url => {
    axios.get(url).then( result => {
      arrayWithResults.push(result);
    }
  });
}

在这里使用 await 是唯一的选择吗?我害怕使用它,因为等待每个请求会减慢整个过程。

4

1 回答 1

2

awaitPromise.all相反的返回值:

const arrayWithResults = await Promise.all(
  urls.map(url => axios.get(url))
);

Promise.all返回一个承诺,一旦传递给它的所有承诺都解决了,它就会立即解决。

于 2018-05-09T21:03:45.347 回答