Я мигрирую приложение для управления проектами из angularjs в actjs .
В приложении angularjs я жду обещаний разрешитькогда маршрут загружается, прежде чем показать его.Все обещания и их состояния хранятся в службе, которая делает вызовы API.Некоторые вызовы API должны ждать конкретных ожидающих вызовов API, поэтому я получаю самые последние данные.
Например: если пользователь добавляет новый проект, он автоматически помещается в маршрут списка проектов.На маршруте списка проектов выполняется вызов API для извлечения списка проектов. Этот вызов API ожидает успешного завершения добавления нового проекта, прежде чем вызывать список.Если бы мы не ожидали завершения добавления нового проекта, то у нас был бы старый список проектов без нового проекта.
Как это перевести на response / redux?
В редуксе мне в основном нужно действие, которое при отправке обязательно дождется любых ожидающих действий перед извлечением данных из API. Это не то же самое, что цепочка асинхронных действий или вызов парыи ожидая решения обоих, потому что в этих случаях вы говорите: «Призови эти действия».Мне нужно что-то, что говорит «Вызовите это действие, но сначала дождитесь разрешения любых ранее вызванных зависимостей».Я понимаю, что вы можете хранить флаг isFetching или что-то подобное в избыточном состоянии, но тогда вам придется следить за этими значениями, и я не уверен, как это сделать.
Два решения Я сталкивался с промежуточным программным обеспечением Redux: Redux-Wait-for-Action и Redux-When .Они в основном хранят список действий, которые были отправлены, но ожидают решения некоторых других типов действий.Они проверяют все действия, чтобы увидеть, было ли разрешено одно из действий в списке, и если они находят одно, они отправляют ожидающее действие.
Мои вопросы следующие:
Хорошо ли этот поток, некоторые вызовы API-адресов маршрутизации ожидают ожидающих вызовов API (возможно, от предыдущих маршрутов), или есть лучший способ структурировать мое приложение, чтобы я не зависел отсгруппированные решает?
Являются ли избыточными действиями, которые, возможно, должны ждать ранее отправленных действий для устранения антипаттерна или плохой практики?Я не вижу многих других людей, сталкивающихся с той же проблемой, что и я, что может указывать на то, что я делаю что-то забавно.
Если все в порядке для моей структуры,Есть ли проблемы с написанием собственного промежуточного программного обеспечения, которое отслеживает ожидающие действия и отправляет их, когда они будут готовы?Причина, по которой я спрашиваю, заключается в том, что ни одно из двух промежуточных программ не хранит список ожидающих действий в хранилище с избыточностью, поэтому технически состояние приложения было бы незаметным для этого списка.Я не хочу вызывать проблемы позже, имея что-то вне магазина, когда это могло бы быть в магазине.
Любой и любой вклад приветствуется, спасибо, ребята!