Я работаю над большим проектом, где недавно кто-то переместил части нашего состояния в Redux, и теперь я заметил некоторые условия гонки при обработке запросов к серверу, которые иногда нарушают работу приложения.
Я ожидаю, что в системе будет много таких случаев, поэтому я ищу наилучшую практику для того, как это обычно обрабатывается в Redux. В некоторых случаях условия гонки понижаются во многих уровнях, где A & B должен ждать C, а C должен ждать D и т. Д.
В простом примере мы загружаем документ. В действии мы проверяем, есть ли у пользователя разрешение на чтение документов перед его загрузкой. Это уже условие гонки, так как разрешения также загружаются асинхронно и еще не могут быть загружены. Загрузка документа выручает, если нет никаких разрешений или если они еще не загружены. Я мог бы исправить это, вызвав ожидание разрешений на загрузку, но они также должны быть частью хранилища Redux, и они могут уже находиться в состоянии ожидания, запущены откуда-то еще, и я хочу убедиться, что мы загружаем только один раз.
Это, кажется, распространенная проблема, когда глобальное состояние зависит от готовности других частей состояния, но я немного запутался, как лучше всего справляться с этим, я не хочу изобретать заново то, что уже существует.