LINUX.ORG.RU

Экспертам по Redux, есть вопрос.

 , ,


0

1

Привет, ЛОР. Недавно я написал свою реализацию 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. Надеюсь доступно объяснил и надеюсь на вашу помощь.

★★★★

спв

Я не имею ни малейшего представления о Redux и Kotlin, и крайне слаб в JS, но раз уж ты меня скастовал, отпишусь: Что вы там все курите?

eternal_sorrow ★★★★★
()
Ответ на: комментарий от CryNet

Свой велосипед ближе к телу. Эти проекты видел, но мне интересно именно как работает в оригинале, потому что нет гарантии, что несколько человек не наступили на одну и ту же граблю.

Jefail ★★★★
() автор топика

я написал свою реализацию Redux на Kotlin

я просто хочу понять, как оно в эталоне

главное, сначала свою реализацию написать, а потом пытаться понять, как работает эталон, с которого писал.

cdshines ★★★★★
()

вызывая next И! одновременно с этим дергает dispatch(ActionD)

В каком порядке-то вызываешь? Сначала dispatch, потом next или наоборот?

static_lab ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.