Javascript 角度5等待承诺从for循环返回
我的数组如下所示:Javascript 角度5等待承诺从for循环返回,javascript,angular,promise,Javascript,Angular,Promise,我的数组如下所示: arr = ['res1', 'res2', 'res3']; 然后,对于每个arr值,我将执行一个API调用,该调用将返回一个承诺 arr.forEach(val => this.getPromise(val)); 方法getPromise返回一个承诺。 在调用另一个方法之前,我需要等待所有承诺。我应该怎么做?在所有承诺都解决后,您可以使用来执行操作。这需要一系列承诺: const promises = ["val1", "val2"].map(val =>
arr = ['res1', 'res2', 'res3'];
然后,对于每个arr
值,我将执行一个API调用,该调用将返回一个承诺
arr.forEach(val => this.getPromise(val));
方法getPromise
返回一个承诺。
在调用另一个方法之前,我需要等待所有承诺。我应该怎么做?在所有承诺都解决后,您可以使用来执行操作。这需要一系列承诺:
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(),就像使用promise一样。响应是一个解析值数组
希望这有帮助 您可以使用在解决所有承诺后执行操作。这需要一系列承诺:
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(),就像使用promise一样。响应是一个解析值数组
希望这有帮助 这可能会有帮助,首先尝试构建一系列承诺,然后使用,看看这是否适合你。这样你就可以并行地执行所有的操作了。首先尝试构建一个承诺数组,然后使用它,看看它是否适合你。通过这种方式,您可以并行执行所有操作。