Ich habe ein Observable, das ich verwende, um ein Versprechen in ein Abonnement zu konvertieren. Dies führt zu einer Sammlung, die ich durchlaufen muss, um einen HTTP-Dienst für jedes Element aufzurufen. Ich benutze forkJoin, um auf alle diese Anrufe zu warten, damit ich etwas anderes machen kann, aber leider wird mein Abonnement nicht aufgerufen. Siehst du, was ich hier vermisse?Beobachtbares Abonnement wird nicht aufgerufen
Observable.fromPromise(this.users.getElements()).subscribe(results => {
Observable.forkJoin(
results.map(
aUser => this.HttpService.submitUser(aUser).subscribe(
results => {
this.progress += 1;
},
err => {
this.progress += 1;
this.handleError(<any>err);
})
).subscribe(
//it never gets to either of these calls after all service calls complete
data => {
debugger;
console.log(data);
this.reset();
},
err => {
debugger;
console.log(err);
this.reset();
}
));
});
Ok, ich verstehe, was du meinst, aber wenn eine dieser Observablen eine Ausnahme hat, nimmt der forkJoin sie sofort auf, bevor die anderen fertig sind.Ich dachte, dass forkJoin warten sollte, bis alle fertig sind, aber von der Quelle sieht es so aus, als würde es "fertig" markieren, anstatt zum nächsten zu gehen. In meinem Beispiel möchte ich, dass jede Observable den Fehler elegant behandelt und fortfährt. Gibt es eine Möglichkeit, das zu tun? – occasl
@occasl mein Update sehen. – martin