我的数组如下:
arr = ['res1', 'res2', 'res3'];
然后针对每个arr
值,我将执行一个API调用,该调用将返回一个诺言
arr.forEach(val => this.getPromise(val));
方法getPromise
返回一个Promise。
在调用另一种方法之前,我需要等待所有的承诺。我该怎么办?
答案 0 :(得分:4)
您可以在所有承诺都解决后使用Promise.all()来执行操作。它需要一系列承诺:
const promises = ["val1", "val2"].map(val => this.getPromise(val));
Promise.all(promises)
.then(results => console.log(results)) // this is an array
.catch(err => console.log(err));
您可以像承诺一样使用then()和catch()。响应是一组解析值。
希望有帮助!