The AngularJs Promise Pattern

Или давайте наконец-то уже писать promises «человеческим» языком!

Асинхронные взаимодействия в AngularJS построены на promise. Я не хочу рассматривать в данной записи подробно теорию promise, так что, рассмотрим лучше их применение.

Все чаще в коде разработчиков встречаются использование promise. Но увы, использование оставляет желать лучшего. Не представляю от куда зародился такой «анти-паттерн», но он усердно прорастает почти в каждом коде разработчика.

Собственно, пример ниже,

Прежде чем раздуть holy war, вы конечно можете спросить — «что же тут не верно? «, собственно «почти» все верно и даже может быть приемлемо в некоторых случаях. Как видно из кода, мы стараемся разделить обработчики, абстрактные обратные вызовы и код более менее чистый. Однако, при таком подходе использования promise, мы столкнемся с некоторыми проблемами. Собственно, давайте обсудим все по порядку.

День первый: Initial code

В один пятничный день, сидя на работе и попивая чай, к Вам вдруг подбегает менеджер со словами — «Нам нужна страничка, которая сохраняет элемент, а затем переходит в другой раздел (другую страницу)».

Нет проблем, мы ведь гуру программирования и за пару минут пишем примерно вот такой код,

И вуаля, код для нашей страницы готов! Все работает как и было задуманно. Я почти уверен, что большая часть разработчиков написали бы именно такой код (не лукавте, все, хотя бы один раз именно так и писали) .

Continue reading “The AngularJs Promise Pattern” »