Voglio modellare la seguente logica asincrona utilizzando Redux:Dove devo scrivere flussi asincroni complessi in Redux?
- Azione utente innesca una catena di chiamate asincrone API.
- Qualsiasi chiamata API potrebbe restituire 401 di stato (login scaduta)
- Se API risponde con 401, schermo a comparsa
- On successo ri-login, chiamata API ristampa e ri-login continuano
I non sono sicuro di dove mettere questa logica. Le azioni non conoscono altre azioni, hanno solo accesso alla spedizione, quindi non possono fermarsi e aspettare che vengano completate. I riduttori non hanno accesso alla spedizione, quindi non posso metterlo lì ... quindi dove vive? Middleware personalizzato? store.listen? In un componente intelligente?
Attualmente sto usando il middleware redux-promise-& redux-thunk. Come sarebbe meglio organizzare questo tipo di flusso - senza richiedere il buy-in in qualcosa come redux-saga o redux-rx, ecc.?
Inoltre non è sicuro il modo migliore per interrompere in modo trasparente la chiamata API per eseguire quelle altre azioni, ad esempio la chiamata API non dovrebbe attivare le azioni completate o non riuscite fino a dopo il completamento del processo di accesso opzionale.