2017-07-06 1 views
0

Ich versuche zu erkennen, wenn alle meine Observables abgeschlossen haben. Ich habe die folgenden Observablen:Forkjoin mit leeren (oder nicht) Array von Observablen

Ich muss etwas tun, wenn alle meine Funktionen abgeschlossen sind. Forkjoin scheint zu funktionieren, wenn das observables Array nicht leer ist. Aber wenn das Array leer ist, wird es nie aufgerufen. Wie kann ich das lösen?

Antwort

5

fehlt Ihnen der 3. Rückruf bei subscribe. versuchen Sie dies:

Rx.Observable.forkJoin([]).subscribe(
    val => { 
     console.log('next'); 
    }, 
    err => { 
     console.log('err'); 
    }, 
    () => { 
     console.log('complete') 
    } 
); 

forkJoin auf leeren Array wird sofort abgeschlossen.

2

Sie fehlen complete Rückruf. Sie können das dritte Argument übergeben oder ein observer-Objekt anstelle von 3 Argumenten übergeben, um die Ereignisprüfung lesbarer zu machen.

yourObservable.subscribe({ 
    next: value => console.log(value), 
    error: error => console.log(error), 
    complete:() => console.log('complete'), 
}); 
Verwandte Themen