Angular 5 ждут обещания вернуться из за петли - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть массив, как показано ниже:

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

Затем для каждого значения arr я сделаю вызов API, который вернет обещание

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

Метод getPromise возвращает обещание.Мне нужно дождаться всех обещаний, прежде чем я вызову другой метод.Как мне это сделать?

1 Ответ

0 голосов
/ 26 сентября 2018

Вы можете использовать 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 (), как и в случае с обещанием.Ответ представляет собой массив разрешенных значений.

Надеюсь, это поможет!

...