-
Notifications
You must be signed in to change notification settings - Fork 68
Promise
Promise (обещание) - это специальный объект предназначенный для отложенных и асинхронных вычислений, который содержит своё состояние.
Promise может находиться в трех состояниях:
- ожидание (pending): начальное состояние;
- выполнено (fulfilled): успешное завершение операции;
- отклонено (reject): завершение операции с ошибкой.
Promise представляет собой обертку для значения, неизвестного на момент его создания. Он позволяет обрабатывать результаты асинхронных операций так, как если бы они были синхронными: вместо конечного результата асинхронного метода возвращается обещание получить результат в некоторый момент в будущем.
Promise при создании находится в ожидании (pending), а затем может стать выполнено (fulfilled), вернув полученный результат, или отклонено (rejected), вернув причину отказа. В любом из этих случаев вызывается обработчик, прикрепленный к обещанию методом then. Если в момент прикрепления обработчика обещание уже сдержано или нарушено, он все равно будет выполнен, т.е. между выполнением обещания и прикреплением обработчика нет «состояния гонки».
var promise = new Promise(function(resolve, reject) {
// Эта функция будет вызвана автоматически
// После выполнения функции, при успешном выполнении resolve(результат), при ошибке reject(ошибка)
})
Каждый раз, когда вы воздаёте объект promise, становятся доступными два метода then и catch. С помощью них вы можете выполнить нужный код при успешном обещании - resolve или когда обещание вернуло ошибку - reject.
promise
.then(function(res)
{
//обработка успешного завершения операции
})
.catch(function(err){
// обработка ошибки
});