Promise.all. Обработка ошибки
Всем привет!
Предположим что делаются асинхронные запросы на сервер, и в prom2 некорректно пришел ответ от сервера
500 ошибка. А в Promise.all ожидается выполнение всех промисов и соответственно,
если в prom2 произошла ошибка, то Promise.all будет отклонен.
Отсюда вопрос, каким образом можно описать функцию, чтобы если в prom2 ошибка, то
получали null или "error!" в Promise.all [data, null, data]. Что-то у меня вообще идей не возникло, как обработать некорректный запрос, чтобы Promise all не был отклонен.
Я нашел метод Promise.allSettled(), но это вроде не то
let prom1 = new Promise()//data
let prom2 = new Promise()//500
let prom3 = new Promise()//data
Promise.all([prom1, prom2, prom3])//[data, null, data]
Ответы (1 шт):
Автор решения: AzetX
→ Ссылка
Может быть кому-то пригодится.
let a = Promise.resolve(200)
let b = Promise.reject(400)
let c = Promise.resolve(200)
Promise.all([a, b, c].map((item) => item.catch(x => (x)? 'error': x))).then(arr => console.log(arr))