Promise
«Promise (обещание) — объект, содержащий будущее значение асинхронной операции.»
Три состояния Promise
- Pending (ожидание) — результат ещё не готов
- Fulfilled (выполнен) — операция успешна, результат доступен
- Rejected (отклонён) — произошла ошибка
Создание Promise
const promise = new Promise((resolve, reject) => {
if (allWentWell) {
resolve('Всё прошло отлично!')
} else {
reject('Что-то пошло не так')
}
})
Методы
// then() — обработка результата
promise.then(
result => { /* успех */ },
error => { /* ошибка */ }
)
// catch() — обработка ошибки
promise.catch(error => alert(error))
// finally() — всегда выполняется
promise.finally(() => console.log('Готово'))
Promise.all()
Promise.all([promise1, promise2, promise3])
.then(([data1, data2, data3]) => {
// все три выполнились
})
.catch(err => {
// любой один отклонён
})