Nella chat di Facebook sull'architettura Flux, Jing menziona at 12:17 che il dispatcher impone che nessuna azione può essere inviata finché l'azione corrente non viene completamente elaborata dai negozi.Come gestite le operazioni dell'archivio asincrono con Flux?
Il dispatcher qui è il pezzo principale che impone che non ci sono effetti a cascata; una volta che un'azione è entrata nel negozio, non è possibile inserirne un'altra finché i negozi non hanno completato l'elaborazione.
La mia domanda, allora, è come si fa a trattare correttamente con esecuzione prolungata operazioni asincrone che potrebbe essere dato il via dal negozio (ad esempio, una richiesta Ajax, o trattare con qualche altro API asincrona esterno) -anything che blocca il completamento del dispiegamento dell'azione (ad esempio, in attesa di risolvere una promessa con il risultato di una richiesta Ajax) potrebbe bloccare le azioni generate dall'interfaccia utente dall'essere spedite.
Supponiamo che l'aggiornamento non riesca e che il server restituisca un messaggio di errore che si desidera visualizzare. Nel gestore TODO_UPDATE_FAILED, salvi il messaggio di errore nel negozio di cose da fare? – scttnlsn
@scttnlsn È necessario chiedersi se il messaggio di errore deve essere memorizzato in TodoStore. In caso contrario, come suggerimento, è necessario creare un archivio dati separato per i messaggi di errore che a loro volta verranno utilizzati dai componenti che gestiscono i messaggi di errore (ad esempio un componente del messaggio di avviso). – Spoike
Rompere un'attività con più azioni può rovinare le cose, se due o più di tali compiti si intrecciano tra loro, qual è la migliore pratica per evitarlo? –