Обещание.все(). Promise.race() и Promise.allSettled являются статическими методами. Их можно использовать, если нам нужно вызвать несколько промисов одновременно.
Обещание.все()
Promise.all() — это статический метод. Если мы хотим выполнить много промисов параллельно, мы можем использовать метод Promise.all(). Этот метод принимает массив обещаний и возвращает обещание, если:
- Все промисы, переданные в массиве, разрешаются.
- Если какое-либо обещание из переданного массива будет отклонено.
Давайте рассмотрим пример использования Promise.all() :

Результатом вышеизложенного будет:
Первое обещание выполнено
Второе обещание решено
Третье обещание решено
Обещание.гонка()
Promise.race() также принимает список промисов, которые необходимо выполнить параллельно, но возвращает первый выполненный промис. Урегулировано означает, что обещание выполнено или отклонено. Это похоже на гонку обещаний, из всех обещаний какое обещание исполняется первым.

Результатом вышеизложенного будет:
Второе обещание выполнено
В этом случае второе обещание разрешается раньше первого, потому что продолжительность времени составляет 1000, что меньше 3000. Таким образом, возвращается второе обещание — оно выигрывает гонку.
Обещание.allSettled()
Promise.allSettled также принимает массив обещаний, но ожидает, пока все обещания будут выполнены, и возвращает их результаты со статусом и значением.
Состояние выполнено, если обещание разрешается, и отклонено, если обещание отклонено.
Значение в случае решения обещания и причина в случае отклонения обещания.

Результатом вышеизложенного будет:
[{ статус: «выполнено», значение: «Мое первое обещание выполнено» }, { причина: «Мое второе обещание отклонено», статус: «отклонено» }]
Метод Promise.allSettled() будет запускать все промисы и возвращать их результаты, какими бы они ни были — разрешающими или отклоняющими.
Подпишитесь на наш канал Youtube, чтобы увидеть больше видео: