Добрый день.
Есть массив промисов, необходимо их выполнить параллельно(асинхронно). Как это можно сделать?
let arr = [new Promise[pending],new Promise[pending],new Promise[pending]
Одно из решений которое я нашел это Promise.All([arr]). Но некоторые обещания выполняются с reject, а Promise.All срабатывает если обещания резолв.
Например у меня есть массив Promise из
const cmd = require('node-cmd-promise');
let promisesArray = []
let array = ['google.ru', 'yandex.ru', 'habrahabr.ru', 'yana.ru']
for (let i = 0;i < array.length; ++i) {
promisesArray.push(cmd(`ping ${array[i]}`));
}
console.log(promisesArray)
Promise.all(promisesArray).catch((error) => console.log(error)).then(results => console.log(results))
но он может не сработать так как один из промисов даст reject если адрес не пингуется.
Как заставить сработать все обещания, а те которые не сработали обработать в catch?