Как работают `Promise.all()`, `Promise.allSettled()`, `Promise.race()` и `Promise.any()`? Какие есть дополнительные статические методы промисов?
СобеседованиеАсинхронность
Promise.all() — ждет выполнения всех промисов, прерывается, если один промис отклонен
Promise.allSettled() — ждет завершения всех промисов в независимости от их статуса
Promise.race() — возвращает первый завершившийся (settled) промис, будь он fulfilled или rejected
Promise.any() — возвращает первый выполненный успешно промис, игнорируя ошибки
Promise.reject() — создает промис, который немедленно переходит в состояние rejected с указанной причиной ошибки
Promise.resolve() — создает промис, который немедленно переходит в состояние fulfilled с указанным значением
Promise.withResolvers() — синтаксический сахар, статический метод, который создает новый промис и одновременно возвращает объект, содержащий:
- сам promise
- функцию resolve для его успешного завершения
- функцию reject для его отклонения
Promise.try() — синтаксический сахар, способ безопасно «обернуть» синхронный код, который может выбросить ошибку, в Promise, аналог Promise.resolve().then(() => {})