Пишу про разработку вообще и в частности про: JavaScript, HTML5, CSS3, AngularJS, ReactJS, Agile.

Введение в обещания в ангулар – promises в AngularJS

Эта статья написана под впечатлением и на основе вот этого видео (англ.) Настоятельно рекомендую посмотреть всем. А тут я приведу выжимку информации – только самое ценное.

Обещания в ангулар (лично я предпочитаю использовать слово promise) это очень эффективная методика для того чтобы связать в одну цепочку результаты разных, но зависящих друг от друга запросов.

Например:

Обещание всегда возвращает что-то – это может быть либо значение, либо состояние (например испешен ли былъ запрос, либо провален).

Как Angular использует обещания:

Как объявить свое обещание в ангуларе

Еще один пример объявления своего обещания

Promise API – цепочка обещаний

Одна из прекрасных возможностей функции then() это то что она сама возвращает обещание. Это значит, что если у нас есть несколько функций, которые должны будут вызваны после ответа от стороннего API. То это можно сделать следующим образом:

Если упростить, то цепочка будет выглядеть вот так:

step1.
then(step2).
then(step3).
then(step4)

Либо вот так:

as1 = step1();
as2 = as1.then(step2);
as3 = as2.then(step3);
as4 = as3.then(step4);

Если подойти к вопросу абстрактно, то о promise можно думать как о письме, которое должно быть доставлено. В этом случае deferred – это почтальон, который занимается доставкой вашего письма.

Пример factory, которая содержит все перечесленное раннее:

https://gist.github.com/blin86/10933410#file-promise-sample-js

Сайлки по теме:
http://www.slideshare.net/xmlilley/postal-for-promises-20-min

Поделиться:
comments powered by Disqus