Ich verstehe die Kernkonzepte der Observable Datendienste, aber bekomme Probleme, wenn ich ein bisschen robuster Service brauche.Angular 2 Observable HTTP-Dienst Fehlerbehandlung
Für eine Benutzerabfrage muss ich eine Kette von http-Aufrufen machen, so dass das Benutzerobjekt zuerst abgefragt wird und dann nach dem Ergreifen des Benutzerobjekts zusätzliche Daten abgefragt werden. Da diese zusätzlichen Anrufe von dem gegriffenen Benutzerobjekt abhängen. Bei Abonnenten, die das gesamte Benutzerobjekt mit zusätzlichen Daten erhielten, konnte es greifen.
Ich verwende derzeit userSource.mergeMap(user => extraDataNeeded(user))
, um die kombinierten Observables zurückzugeben. Dabei gibt extraDataNeeded
Observable.forkJoin(...OBSERVABLES)
OBSERVABLES
zurück, ein Array von http-Aufrufen, die zusätzliche Daten zum Benutzerobjekt hinzufügen.
Mein Problem ist, dass, wenn einer dieser zusätzlichen http Anrufe fehlschlägt, der Rest in der Kette abgebrochen werden. Ich möchte für die höchste Observable erstellt von userSource.mergeMap(user => extraDataNeeded(user))
, um alle HTTP-Aufrufe unabhängig davon, ob eine fehlschlägt. Ich möchte, dass die Abonnenten von userSource.mergeMap(user => extraDataNeeded(user))
das Benutzerobjekt mit allen Daten empfangen, die es abrufen konnte, und alle Fehler für die internen HTTP-Aufrufe, die fehlgeschlagen sind. Und scheitern vollständig ohne Erfolg Antwort, wenn das Original userSource
fehlschlägt.