Skip to content

Promise

ivanleontev edited this page Oct 22, 2017 · 6 revisions

Promise (обещание) - это специальный объект предназначенный для отложенных и асинхронных вычислений, который содержит своё состояние.

Promise может находиться в трех состояниях:

  • ожидание (pending): начальное состояние;
  • выполнено (fulfilled): успешное завершение операции;
  • отклонено (reject): завершение операции с ошибкой.

group

Описание

Promise представляет собой обертку для значения, неизвестного на момент его создания. Он позволяет обрабатывать результаты асинхронных операций так, как если бы они были синхронными: вместо конечного результата асинхронного метода возвращается обещание получить результат в некоторый момент в будущем.

Promise при создании находится в ожидании (pending), а затем может стать выполнено (fulfilled), вернув полученный результат, или отклонено (rejected), вернув причину отказа. В любом из этих случаев вызывается обработчик, прикрепленный к обещанию методом then. Если в момент прикрепления обработчика обещание уже сдержано или нарушено, он все равно будет выполнен, т.е. между выполнением обещания и прикреплением обработчика нет «состояния гонки».

Синтаксис создания "обещания"

var promise = new Promise(function(resolve, reject) {
  // Эта функция будет вызвана автоматически
  // После выполнения функции, при успешном выполнении resolve(результат), при ошибке reject(ошибка)
})

Методы then и catch

Каждый раз, когда вы воздаёте объект promise, становятся доступными два метода then и catch. С помощью них вы можете выполнить нужный код при успешном обещании - resolve или когда обещание вернуло ошибку - reject.

promise
.then(function(res)
{
 //обработка успешного завершения операции
})
.catch(function(err){
  // обработка ошибки
});

Исполнитель: Леонтьев Иван (ИДМ-17-04)