Авторизация
Забыли пароль? Введите ваш е-мейл адрес. Вы получите письмо на почту со ссылкой для восстановления пароля.
После регистрации вы сможете задавать вопросы и писать свои ответы, получая за это бонусы. Все остальные функции на сайте доступны без регистрации.
Вы должны войти или зарегистрироваться, чтобы добавить ответ и получить бонусы.
Promise в JavaScript — это объект, который используется для обработки асинхронных операций и управления результатами этих операций. Он представляет собой обещание выполнить определенное действие и возвратить результат в будущем.
Promise может находиться в трех состояниях:
1. Ожидание (pending): начальное состояние, когда операция все еще выполняется.
2. Выполнено (fulfilled): операция успешно завершена и результат доступен.
3. Отклонено (rejected): операция завершилась с ошибкой и возвращен соответствующий результат.
Promise позволяет выполнять цепочку асинхронных операций, называемых thenable, что облегчает управление асинхронным кодом и избегает так называемого «ада колбэков». Он также предоставляет методы для обработки успешного выполнения операции (then) и обработки ошибок (catch).
Пример использования Promise:
«`javascript
const promise = new Promise((resolve, reject) => {
// асинхронная операция
setTimeout(() => {
const success = true;
if (success) {
resolve(«Успех»); // операция успешно завершена
} else {
reject(«Ошибка»); // операция завершилась с ошибкой
}
}, 2000);
});
promise
.then((result) => {
console.log(result); // выводит «Успех»
})
.catch((error) => {
console.log(error); // выводит «Ошибка»
});
«`
В данном примере создается Promise, который выполняет асинхронную операцию (в данном случае, задержку в 2 секунды). Если операция завершается успешно, вызывается метод resolve и передается результат. Если операция завершается с ошибкой, вызывается метод reject и передается ошибка.
Затем, с помощью методов then и catch, обрабатываются результаты операции — в случае успешного выполнения вызывается функция, переданная в then, а в случае ошибки — функция, переданная в catch.