Middle
94
questionbank
Как работает Promise в JavaScript?
AI答案
sobes.tech AI
- Объект, представляющий возможное конечное завершение (или сбой) асинхронной операции и ее результирующее значение.
- Состояния промиса:
pending: начальное состояние, ни выполнен, ни отклонен.fulfilled: означает, что операция успешно завершена.rejected: означает, что операция завершилась ошибкой.
- Переход из состояния
pendingвfulfilledилиrejectedпроисходит однократно и необратимо. - Методы:
.then(onFulfilled, onRejected): Принимает две функции обратного вызова. Первая (onFulfilled) вызывается при успешном завершении, вторая (onRejected) - при ошибке. Оба аргумента опциональны. Возвращает новый промис..catch(onRejected): Сокращенная запись.then(null, onRejected). Предназначен для обработки ошибок. Возвращает новый промис..finally(onFinally): Вызывается независимо от результата промиса (успех или ошибка). Полезен для очистки ресурсов. Возвращает новый промис.
- Создание промиса:
new Promise((resolve, reject) => {
// Асинхронная операция
const success = true;
if (success) {
resolve("Операция успешна!"); // Перевод в состояние fulfilled
} else {
reject("Что-то пошло не так..."); // Перевод в состояние rejected
}
});
- Цепочки промисов:
.then(),.catch(),.finally()возвращают промисы, что позволяет создавать цепочки для последовательного выполнения асинхронных операций.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Ошибка:', error));