Angular 2 rxjs Observables, die aus BehaviorSubject erstellt wurden, funktionieren nicht mit forkJoin

8

Ich versuche Observable.forkJoin zu verwenden und der Subskriptions-Handler wird niemals 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 mit ihrer BehaviorSubject -Funktion aus asObservable() -Objekten erstellt werden.

Dieser Abonnent wird getroffen

%Vor%

Dies tut nicht

%Vor%

Natürlich gibt es in meinem realen Anwendungsfall mehr als einen observablen, weshalb ich forkJoin an erster Stelle verwende.

Gibt es noch etwas, das an BehaviorSubject getan werden muss, damit es mit forkJoin funktioniert?

UPDATE:

Nachdem ich die RxJs-Dokumente ein wenig genauer untersucht hatte, wurde mir klar, dass Observable.combineLatest viel besser für meinen Bedarf geeignet war als forkJoin ... Hier verlinken, falls einer auf diesen SO-Beitrag stößt: Ссылка

    
cboston 20.10.2016, 22:35
quelle

1 Antwort

6

Das Problem ist, dass forkJoin den Observablen bei ihrer Fertigstellung beitritt.

In Ihrem ersten Snippet erstellen Sie eine Observable mit of - welche bei subscribe sofort einen Wert ausgibt und dann abschließt.

In Ihrem zweiten Snippet wird BehaviorSubject nicht abgeschlossen. Wenn Sie complete aufrufen würden, würden Sie den in der Konsole protokollierten Wert sehen:

%Vor%     
cartant 21.10.2016, 00:19
quelle

Tags und Links