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().

Продолжайте учиться и продолжайте расти!