redux を使用して次の非同期ロジックをモデル化したいと考えています。
- ユーザー アクションにより、一連の非同期 API 呼び出しがトリガーされます。
- API 呼び出しで 401 ステータスが返される場合がある (ログイン タイムアウト)
- API が 401 で応答した場合、再ログインのポップアップを表示する
- 再ログインに成功したら、API 呼び出しを再発行して続行します
このロジックをどこに置くべきかわかりません。アクションは他のアクションを認識せず、ディスパッチにしかアクセスできないため、停止して完了するのを待つことはできません。レデューサーはディスパッチにアクセスできないので、そこに置くことはできません…では、それはどこにあるのでしょうか? カスタムミドルウェア? store.listen? スマートコンポーネントで?
現在、redux-promise-middleware と redux-thunk を使用しています。redux-saga や redux-rx などへの賛同を必要とせずに、このタイプのフローをどのように編成するのが最善でしょうか?
また、API 呼び出しを透過的に中断して他のアクションを実行する最善の方法もわかりません。つまり、API 呼び出しは、オプションのログイン プロセスが完了するまで、完了または失敗したアクションをトリガーしてはなりません。