# Promise
# Описание
Promise
- специальный объект, который используются для обработки результатов асинхронных операций. Промис хранит своё состояние, текущий результат (если есть) и коллбэки
# Состояния Promise
pending
- ожидание (выполняется)fulfilled
- выполнено успешноrejected
- отклонено (выполнено с ошибкой)
# Навешиваемые коллбэки
onFulfilled
– срабатывают, когда promise в состоянииfulfilled
onRejected
– срабатывают, когда promise в состоянииrejected
let promise = new Promise(function(resolve, reject) {
resolve(arg) // => onFulfilled(arg) => .then(arg) => Promise
reject(arg) // => onRejected(arg) => .catch(arg) => Promise
});
# Объявление
# Promise
// Объявление
let promise = new Promise((resolve, reject) => {
if (...) {
// onResolved()
resolve('ok');
} else {
// onRejected()
reject(new Error('Api error')); // аналогично с throw
throw new Error('Api error'); // аналогично с reject
}
});
// Использование
promise
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
console.error(error.message);
})
# Функция
// Объявление
function asyncFunc() {
const promise = new Promise((resolve, reject) => {
//
});
return promise;
}
// Использование
asyncFunc()
.then(result => { ... })
.catch(result => { ... })