Расскажите про все методы Promise?
Этот вопрос проверяет знание всех методов объекта Promise, которые используются для управления асинхронными операциями в JavaScript.
Короткий ответ
Основные методы промиса включают: then() — для обработки успешного выполнения, catch() — для обработки ошибок, finally() — для выполнения кода по завершению промиса, независимо от результата. Есть также методы Promise.all(), Promise.race(), Promise.allSettled() и Promise.any(), которые позволяют работать с несколькими промисами одновременно.
Длинный ответ
Объект Promise в JavaScript предоставляет несколько методов для управления асинхронными операциями:
- then(onFulfilled, onRejected) — используется для обработки успешного выполнения промиса или ошибок.
- catch(onRejected) — ловит ошибки, которые произошли в промисе или в одном из последующих then().
- finally(onFinally) — выполняется в любом случае, когда промис завершен (успешно или с ошибкой).
- Promise.all(promises) — принимает массив промисов и возвращает новый промис, который выполнится только тогда, когда все переданные промисы завершатся. Если хотя бы один промис будет отклонён, Promise.all отклонит результат.
- Promise.race(promises) — возвращает промис, который выполнится или будет отклонён первым среди переданных промисов.
- Promise.allSettled(promises) — возвращает новый промис, который выполнится, когда все переданные промисы завершатся (успешно или с ошибкой), и возвращает массив объектов с результатами.
- Promise.any(promises) — возвращает первый успешный промис среди переданных, игнорируя отклоненные промисы.
Пример использования метода Promise.all():
const promise1 = Promise.resolve(10);
const promise2 = Promise.resolve(20);
const promise3 = new Promise((resolve) => setTimeout(resolve, 1000, 30));
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values); // [10, 20, 30]
});Эти методы предоставляют гибкие инструменты для работы с несколькими асинхронными операциями, позволяя вам контролировать их выполнение и обработку.