Ich versuche Observable.forkJoin
zu verwenden und der Subskriptionshandler wird nie getroffen. Der forkJoin-Operator arbeitet für mich in anderen Teilen meiner App und der einzige Unterschied, den ich mir im nicht arbeitenden Szenario vorstellen kann, ist, dass die Observables von BehaviorSubject
-Objekten mit der asObservable()
-Funktion erstellt werden.Angular 2 rxjs Observables erstellt von BehaviorSubject funktionieren nicht mit ForkJoin
getroffen wird
Diese abonnierenlet obs = Observable.of(1);
Observable.forkJoin(
obs
).subscribe(data => {
console.log(data);
});
Dieses nicht
let bs = new BehaviorSubject<number>(1);
let obs = bs.asObservable();
Observable.forkJoin(
obs
).subscribe(data => {
console.log(data);
});
Natürlich in meinem realen Anwendungsfall mehr als eine obseravble ist, weshalb ich forkJoin in der ersten bin mit Ort.
Gibt es noch etwas, das an BehaviorSubject getan werden muss, damit es mit forkJoin funktioniert?
UPDATE:
die RxJs docs etwas Nach der Untersuchung erkannte ich, dass die Observable.combineLatest
war viel besser geeignet, um mein Bedürfnis als forkJoin
... Link hier im Falle kommt jeder auf dieses SO Beitrag: http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-combineLatest
Danke für die Antwort. Nachdem ich die Dokumente der RxJs ein wenig genauer untersucht hatte, wurde mir klar, dass das 'Observable.combineLatest' viel besser für meine Bedürfnisse geeignet war als' forkJoin' ... Link für den Fall, dass jemand auf diesen SO-Beitrag stößt: http://reactivex.io/ rxjs/class/es6/Observable.js ~ Beobachtbar.html # static-method-combineLatest – cboston