Ich habe das Gefühl, dass dieses Szenario in den Angular 2 Docs sein sollte, aber ich kann es nirgends finden.
Hier ist das Szenario
Ich stelle mir vor, dass es so etwas funktioniert:
%Vor%Ich bin bei Angular 2 sehr neu, daher mag das an meinem mangelnden Verständnis dafür liegen, wie ein Observable funktioniert. Ich habe kein Problem mit der Anzeige dieser Daten auf dem Formular, aber ich kann nicht herausfinden, wie man es in der ts-Komponente sieht. Ich möchte wirklich nur den Erfolg / das Scheitern des http create überprüfen.
Wie in der entsprechenden RxJS-Dokumentation angegeben, ist die .subscribe()
method kann ein drittes Argument verwenden, das nach Abschluss aufgerufen wird, wenn keine Fehler auftreten.
Als Referenz:
[onNext]
(Function
): Funktion, die für jedes Element in der beobachtbaren Sequenz aufgerufen wird.[onError]
(Function
): Funktion, die bei einer außergewöhnlichen Beendigung der beobachtbaren Sequenz aufgerufen wird.[onCompleted]
(Function
): Funktion, die bei ordnungsgemäßer Beendigung der beobachtbaren Sequenz aufgerufen wird.
Daher können Sie Ihre Routing-Logik im onCompleted
-Rückruf handhaben, da sie bei ordnungsgemäßer Beendigung aufgerufen wird (was bedeutet, dass beim Aufruf keine Fehler auftreten).
Als Randnotiz gibt es auch eine .finally()
Methode , die bei Abschluss aufgerufen wird, unabhängig vom Erfolg / Fehlschlag des Aufrufs. Dies kann in Szenarien nützlich sein, in denen Sie immer eine bestimmte Logik nach einer HTTP-Anforderung unabhängig vom Ergebnis ausführen möchten (z. B. für Protokollierungszwecke oder für einige UI-Interaktionen, z. B. zum Anzeigen eines Modals).
Rx.Observable.prototype.finally(action)
Ruft eine angegebene Aktion auf, nachdem die beobachtbare Quellensequenz ordnungsgemäß oder ausnahmsweise beendet wurde.
Hier ist zum Beispiel ein einfaches Beispiel:
%Vor%