ES2020 -Обещание все улажено
11-е издание, или ECMAScript 2020, было опубликовано в июне 2020 года. Оно содержит множество новых функций, и метод allSettled() является одной из них.
В основном обещания в JS используются для обработки асинхронных операций. Обещание иметь 3 состояния. Одно выполнено или решено, второе отклонено или 3-е ни выполнено, ни отклонено.
В ES6/ES2015 обещания реализованы как встроенная стандартная часть JS. Реализованы методы all(), race(), reject() и resolve(). В ES2020 JavaScript представляет новый класс обещаний, то есть promise.allSettled().
До ES2020 promise.all() брал массив промисов, останавливал его выполнение, выдавал ошибку и отклонял промис, как только отклоненные промисы встречались в массиве промисов.
В приведенном выше примере 1-е обещание разрешено, 2-е отклонено, а 3-е не выполнено.
В ES2020 обещают. allSettled() возвращает результат всех промисов.
синтаксис: Promise.allSettled([массив промисов])
Тип возвращаемого значения — это массив обещаний, т. е. {статус: «выполнено/отклонено», значение: «определено пользователем»}
Давайте возьмем пример и посмотрим, как работает promise.allSettled(). Давайте создадим 3 промиса, промис1 будет разрешен, промис2 будет отклонен, а промис3 будет разрешен.
Вывод приведенного выше кода:
[{статус: 'выполнено', значение: "не определено"},
{статус: 'отклонено', значение: "ошибка"},
{статус : «выполнено», значение: «не определено» }]
Итак, давайте обсудим разницу между promise.all() и promise. всеустановлено()
обещание.all():
Ввод представляет собой массив обещаний.
Отклонить обещание, если одно из обещаний отклонено.
Длина результирующего массива равна ‹= длине ввода.
Полезно для множественных вызовов успешных операций.
обещание.allSettled():
Ввод представляет собой массив промисов.
Разрешены все промисы, даже если одно из промисов отклонено.
Длина результирующего массива равна длине ввода.
Полезно для получения статуса нескольких API. то есть операция успеха/неудачи.
Это все о javascript ES2020 promise.allSettled().
Продолжайте учиться и продолжайте расти!