如何在 React 中等待多个异步等待请求

dfr*_*tch 4 javascript asynchronous promise reactjs

我想在 React 组件中执行以下操作:

const someArray = [/*stuff*/]
const results = []
someArray.forEach(async item => {

  const result = await someAsyncFunction(item)
  results.push(result)
})
Run Code Online (Sandbox Code Playgroud)

我如何知道所有结果何时返回然后执行某些操作?

如果我在 AngularJS 中使用 $q,我可以这样做

var results = []
someArray.forEach(function(item) {
  var result = someAsyncFunctionThatReturnsAPromise(item);
  results.push(result);
});

$q.all(results).then(function() {
  // do something
});
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 6

如果它不是 React 组件,你会做完全相同的事情:

Promise.all(someArray.map(someAsyncFunction)).then(results => {
  // do stuff with results
});
Run Code Online (Sandbox Code Playgroud)

当然你也可以使用q,它$q是基于 . 由你决定。