Promise — это объект, который представляет итоговый результат асинхронной операции — либо успех, либо ошибку. Он позволяет тебе работать с асинхронным кодом чище и понятнее, чем с традиционными callback'ами.
Promise может находиться в одном из трёх состояний:
Когда Promise переходит из pending в fulfilled или rejected, его состояние больше не может измениться.
Promise создаётся с помощью конструктора new Promise(), который принимает функцию с двумя параметрами — resolve и reject:
const myPromise = new Promise((resolve, reject) => {
const success = true;
success ? resolve("Done!") : reject("Something went wrong.");
});
Promise используется с помощью следующих методов, которые можно выстраивать в цепочку:
.then() — обрабатывает результат fulfilled.catch() — обрабатывает ошибку rejected.finally() — выполняется независимо от результата (логика очистки)myPromise
.then(result => console.log(result))
.catch(error => console.error(error))
.finally(() => console.log("Finished."));
Promise — основа современных асинхронных паттернов в JavaScript. Они решают проблему callback hell за счёт возможности выстраивать цепочки вызовов и служат фундаментом для синтаксиса async/await, который строится прямо на них.
Как только Promise переходит из состояния pending в fulfilled, он всё ещё может быть отклонён, если позже в цепочке выполнения произойдёт ошибка.
Новый — ещё не проверен сообществом
Вы