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

Mini Promise library

Самый удобный способ работы с асинхронными запросами в JavaScript это используя обещания (promises). В отличии от более очевидных callback функций, promise позволяет значительно проще обрабатывать несколько связанных асинхонных запросов. Я в каждом своем проекте стараюсь использовать именно этот подход, нравится он мне, что уж там говорить.

В ангуларе за promises отвечает библиотека $q я о не уже рассказывал. Однако, сегодня речь не о ней, сегодня поговорим о других решениях, которые приходится применять, когда нет англара в проекте.

Практически любая серьезная библиотека дает поддержку promises, тот же jQuery не исключение и если он уже есть в проекте, то у вас все хорошо. Вопросы начинаются, когда нужно написать очень узкое решение для конкретной проблемы, когда нет возможности использовать слишком “толстые” библиотеки. Разумеется, что всегда есть ответ – написать на чистом JS и это на самом деле хороший ответ. Однако, сколько времени это займет и сможем ли бы быстро отловить все ошибки?

Я нашел небольшую библиотеку (2k), которая дает хороший функционал для работы с ajax запросами и так же дает обертку для promises: https://github.com/stackp/promisejs

Тут есть все, что нужно:

Можно создавать свои promises

Если нужно вернуть ошибку, то делаем так:

Если есть цепочка асинхронных запросов, то все это можно выстроить следующим образом:
(Кстати, представьте как будет выглядеть решение с использованием callback)

Плюс тут есть ajax запросы:

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