Angular 5等待promise从for循环返回

时间:2018-09-26 02:43:29

标签: javascript angular promise

我的数组如下:

arr = ['res1', 'res2', 'res3'];

然后针对每个arr值,我将执行一个API调用,该调用将返回一个诺言

arr.forEach(val => this.getPromise(val));

方法getPromise返回一个Promise。 在调用另一种方法之前,我需要等待所有的承诺。我该怎么办?

1 个答案:

答案 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()。响应是一组解析值。

希望有帮助!