Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度5等待承诺从for循环返回_Javascript_Angular_Promise - Fatal编程技术网

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一样。响应是一个解析值数组


希望这有帮助

这可能会有帮助,首先尝试构建一系列承诺,然后使用,看看这是否适合你。这样你就可以并行地执行所有的操作了。首先尝试构建一个承诺数组,然后使用它,看看它是否适合你。通过这种方式,您可以并行执行所有操作。