И это всё МОЁ

Привет, ЛОР.
Недавно я написал свою реализацию Redux на Kotlin и уже пост фактум столкнулся с интересной особенностью, мне надо понять, проблема в том как я спроектировал конечное приложение, или в моей реализации на Kotlin есть баг. В общем, нужно проверить как ведёт себя оригинальный ReduxJS в такой ситуации и потому я здесь (Сам я в JS не шибко силён).


Ближе к делу:
Речь идёт о middleware, функции next внутри него и возможности диспатчить новые action непосредственно из Middleware (насколько я понял из документации вызов next и dispatch в одной ветке никаких правил не нарушают). Так вот, допустим у меня есть такая конструкция.


Action A
Action B
Action C
Action D

middleware1 который превращает A -> B вызывая next
middleware2 который превращает B -> C вызывая next И! одновременно с этим дергает dispatch(ActionD)



Какое поведение ожидаю я:
Сначала полностью пройдет цепочка для A -> B -> C


C попадет в Reducer, поменяется состояние и только потом через все Middleware и в конечном счёте Reducer полетит событие D.


На самом деле происходит совсем не так: В моём случае событие D летит по всем Middleware ещё до того как событие C достигнет редюсера. Повторюсь, возможно бага в моей реализации и я просто хочу понять, как оно в эталоне, которым для меня является JS. Надеюсь доступно объяснил и надеюсь на вашу помощь.









 , ,