Ich habe 2 (oder mehr) Observables von Diensten zurückgegeben, von denen jeder nur einen Wert zurückgibt (Think Observable.just()
). Jeder von ihnen ist von unterschiedlichem Typ (ich schreibe in TypeScript, also Typen sind wichtig).So lösen Sie mehrere Observables
Gibt es eine Möglichkeit zu wissen, wann alle Observables entweder erfolgreich oder fehlgeschlagen gelöst haben (mit Versprechen Terminologie) Ich muss in der Lage sein, Fehler einzeln zu behandeln, und weitermachen.
konstruiertes Beispiel:
const obs1 = someService.getThisThing(); //Observable<Type1>
const obs2 = someService.getAnotherThing(); //Observable<Type2>
const someObj = {};
obs1.subscribe(v1 => someObj.v1 = v1);
obs2.subscribe(v2 => someObj.v2 = v2);
// call someFunc(someObj), only when both above observables resolved to a value
someFunc(someObj);
Ich habe versucht, merge
verwenden, aber dann verliere ich Typsicherheit als Werte in beliebiger Reihenfolge kommen kann, und ich habe ihre Art zu inspizieren in .subscribe
zu bestimmen, welche ist die
ich habe versucht, combine
und combineLatest
als here beschrieben - aber dann beide sie Entschlossenheit zugleich, und wenn 1 ausfällt - alles versagt