HoHsi: Человек который задал вопрос, получил неполный ответ. Я его дополнил, указав плюсы. А смысл в скорости появляется именно тогда, когда вам нужна скорость (ваш КО).
Itvanya: Очень даже можно обойтись без промисов и генераторов. Смотрите библиотеку https://github.com/caolan/async Она позволяет изящно размотать лапшу калбеков и при этом будет ещё и быстрее чем те же приомисы (даже нативные) потому как калбеки всегда быстрее.
Сергей Соколов: в baobab-react нет диспетчера. Описанные вами действия производятся в baobab-action которые являются по сути аналогами редьюсеров в Redux.
Redux конечно ещё торт, но уже не самый вкусный. Посмотрите в сторону Baobab.js (модуль baobab-react). Концепция очень похожа, но структура проекта на порядок чище, проще и понятнее. По сути вы будете иметь дело только компонентами и baobab-экшенами, которые будут менять состояние хранящееся в детерминированном иммутабельном дереве. Великолепный выбор для больших SPA и изоморфных приложений.
А я с авторизацией вообще не стал заморачиваться. В том плане что она у меня классический постинг формы. А вот если пользователь уже авторизован , то тут уже подключается React.
Litiy: "Ну и вообще - не надо писать логику в шаблонах, в шаблонах должна быть лишь отсылка к логике в js." - в свете этого Backbone.js тогда смотрится идеально.
Что-то у вас с архитектурой приложения не то. Потому что если объявляете id и получаете её значение (1010) в рамках какого-то потока, то состояние этой переменной не изменится и её можно смело замыкать во внутренний callback запроса. Приведите полностью пример кода.
В вашем примере синхронный код. У спрашивающего асинхронный вызов community.getMarketItem() в каждой итерации. И вопрос был в том как получить callback после того как все итерации отработают. Возможно вы не поняли вопроса.
Миша Коган: в дополнение хочу посоветовать метод aync.auto() для разматывания вложенной последовательно-параллельной лапши с зависимостями. Серебряная пуля - не иначе.