@mamaanarhiya

Как получить ошибки всех запросов?

Нужно отправить несколько запросов и получить в виде массива ошибки этих запросов. Promise.all не работает, отваливается после первой ошибки, то есть если 2 или 3 запроса вернулись с ошибками, то всё равно получаю только одну ошибку, ошибку запроса, который выполнился первый.
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@Sovetnikov
технический директор pulsprodaj.ru
Надо каждый Promise пропустить через catch и возвращать саму ошибку:
function apiRequest(success) {
    return new Promise(function (resolve, reject) {
        if (success) {
            resolve(success);
        } else {
            reject('err');
        }
    })
    .catch(function(err){
        return err;
    });
}
var p1 = apiRequest('1');
var p2 = apiRequest();
var p3 = apiRequest('2');
var p4 = apiRequest();

Promise.all([p1, p2, p3, p4])
.then(function(res){
    console.log('Promise.all', res);
})
.catch(function(err){
    console.error('err', err);
});

Результат:
Promise.all (4) ["1", "err", "2", "err"]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы