In der Facebook-Talk auf der Flux-Architektur erwähnt Jing at 12:17, dass der Dispatcher erzwingt, dass keine Aktionen ausgelöst werden können, bis die aktuelle Aktion vollständig von den Speichern verarbeitet wird.Wie verwalten Sie asynchrone Store-Vorgänge mit Flux?
Der Dispatcher ist hier das Hauptstück, das erzwingt, dass es keine Kaskadierungseffekte ist; Sobald eine Aktion in den Laden geht, können Sie keine weitere hinzufügen, bis die Geschäfte vollständig fertig sind.
Meine Frage ist dann, wie zu können, soll mit langer Laufzeit asynchrone Operationen beschäftigen, die aus dem Speicher (zB eine Ajax-Anfrage, oder den Umgang mit einem anderen außerhalb async API) -anything blockiert werden könnten gekickt Der Abschluss der Aktionssendung (z. B. Warten auf das Lösen einer Zusage mit dem Ergebnis einer Ajax-Anforderung) kann UI-generierte Aktionen des Benutzers blockieren.
Angenommen, die Aktualisierung schlägt fehl und der Server gibt eine Fehlermeldung aus, die Sie anzeigen möchten. Würden Sie die Fehlernachricht im Todo-Speicher im TODO_UPDATE_FAILED-Handler speichern? – scttnlsn
@scttnlsn Sie müssen sich fragen, ob diese Fehlermeldung im TodoStore gespeichert werden muss. Wenn nicht, dann sollten Sie einen separaten Datenspeicher für Fehlermeldungen erstellen, der wiederum von Komponenten verwendet wird, die Fehlermeldungen verarbeiten (z. B. eine Warnmeldungskomponente). – Spoike
Wenn Sie eine Aufgabe mit mehreren Aktionen abbrechen, kann dies zu Fehlern führen, wenn sich zwei oder mehr solcher Aufgaben miteinander verflechten. Was ist die beste Vorgehensweise, um dies zu vermeiden? –