我正在尝试添加两个可观察的。但是控制台不会显示任何内容。
var s = Rx.Observable.of(100, 200, 300);
var s1 = Rx.Observable.interval(1000);
var sub = Rx.Observable.forkJoin(s, s1)
sub.subscribe(x => console.log(x));
对于两个同步可观测对象而言,没有问题
答案 0 :(得分:0)
forkJoin
仅在其所有源可观察对象至少发出一项并且全部完成时发出。使用Observable.of
很好。它发出所有值并立即完成。但是Observable.interval
永远不会自己完成(例如,您可能希望将其与take(N)
链接起来。
var s1 = Rx.Observable.interval(1000).take(1);
// Now both source Observables complete so `forkJoin` will complete as well
var sub = Rx.Observable.forkJoin(s, s1);
答案 1 :(得分:0)
如果您在官方文档中查找forkJoin() function,将会看到:
forkJoin将等待所有传递的Observable完成,然后它将发出一个数组,其中包含来自相应Observable的最后一个值。
如果您查看interval() function
interval返回一个Observable,它发出无限个递增的整数序列...。
因此,您的forkJoin可以正常工作,它将永远不会console.log()
,因为interval函数不会结束。