Какие условия используются в объекте Promise в Node.js?
Объект Promise
в JavaScript (и в Node.js) представляет собой объект, который используется для обработки асинхронных операций. Он может находиться в одном из трех состояний: ожидание (pending), выполнено (fulfilled) или отклонено (rejected).
Основные состояния Promise
Методы Promise
Чтобы работать с промисами, используются следующие методы:
1. then()
Метод then()
позволяет указать обработчики для успешного завершения промиса и для обработки ошибок (отклонений).
Пример:
const myPromise = new Promise((resolve, reject) => {
const success = true; // Измените на false, чтобы протестировать отказ (reject)
if(success) {
resolve("Успех!");
} else {
reject("Ошибка!");
}
});
myPromise
.then(result => {
console.log(result); // "Успех!"
})
.catch(error => {
console.error(error); // "Ошибка!" если состояние отклонено
});
2. catch()
Метод catch()
используется для перехвата ошибок, возникающих во время выполнения промиса.
Пример:
const failedPromise = new Promise((resolve, reject) => {
reject("Произошла ошибка!");
});
failedPromise
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error); // "Произошла ошибка!"
});
3. finally()
Метод finally()
выполняется независимо от результата промиса (выполнен или отклонен). Он часто используется для выполнения завершающих действий, таких как очистка ресурсов или уведомление пользователя.
Пример:
const anotherPromise = new Promise((resolve, reject) => {
const isSuccessful = true; // Попробуйте изменить на false для теста
if (isSuccessful) {
resolve("Все прошло хорошо!");
} else {
reject("Что-то пошло не так!");
}
});
anotherPromise
.then(result => {
console.log(result); // "Все прошло хорошо!"
})
.catch(error => {
console.error(error);
})
.finally(() => {
console.log("Операция завершена."); // В любом случае, это будет выполнено
});
Заключение
Объект Promise
является мощным инструментом для работы с асинхронными операциями в Node.js и JavaScript. Используя методы then()
, catch()
и finally()
, вы можете эффективно управлять логикой выполнения вашего кода. Эти методы помогают не только обрабатывать успешные результаты, но и ловить ошибки, что делает ваш код более надежным и читабельным.