😳 Что такое promise и какие состояния у него есть ?



Promise (обещание) — это объект, представляющий завершение (или неудачу) асинхронной операции и её результат. Он позволяет ассоциировать обработчики с асинхронным действием, тем самым избавляя от необходимости использовать обратные вызовы (callback-функции). Они упрощают работу с асинхронными операциями, такими как AJAX-запросы или чтение файлов, позволяя написать код, который проще понять и поддерживать.



Состояния:



1️⃣ Pending (Ожидание): Начальное состояние; асинхронная операция не завершена.

2️⃣ Fulfilled (Исполнено): Операция завершена успешно, и promise возвращает результат.

3️⃣ Rejected (Отклонено): Операция завершена с ошибкой, и promise возвращает причину отказа.



Пример:

let обещание = new Promise(function(resolve, reject) {

// Эмуляция асинхронной операции, например, запроса к серверу

setTimeout(() => {

// Условие успешного выполнения операции

if (/* условие успеха */) {

resolve("данные получены");

} else {

reject("ошибка при получении данных");

}

}, 1000);

});



обещание.then(

function(результат) { console.log(результат); }, // обработчик успеха

function(ошибка) { console.log(ошибка); } // обработчик ошибки

);




Promise поддерживает цепочки вызовов (then), что позволяет организовывать асинхронный код последовательно и читабельно. Кроме того, существуют вспомогательные методы, такие как Promise.all, Promise.race, Promise.resolve, и Promise.reject, которые облегчают работу с группами асинхронных операций.



Promise — это способ организации асинхронного кода, который предоставляет более удобный и понятный интерфейс для работы с асинхронными операциями, чем традиционные callback-функции. У каждого обещания есть три состояния: ожидание, исполнено и отклонено, которые помогают управлять результатом асинхронных операций.



Str (IT-Community) | #ВопросыДляСобесов