RXJS合并流返回的数据

var time = Rx.Observable.of(['abc']);
var time2= Rx.Observable.of([122,123]);
Rx.Observable.zip(time,time2
                 , (a, b) => [...a, ...b])
  .subscribe(data => console.log("data:",data));
Rx.Observable.merge(time,time2).subscribe(data => {
  console.log("data-M:",data);
})
Rx.Observable.combineLatest(time,time2
                 , (a:Array<any>, b:Array<any>) => return a.concat(b);)
  .subscribe(data => console.log("data:",data));

需求:合并两个流返回的数组为一个数组元素,实现结果:

["abc", 122, 123]

使用RXJS的zip、combinelatest操作符可以实现,merge操作符打印的是一个一个的数据。
目前的问题是:如果两个流中的某一个流为空,比如var time = Rx.Observable.of(),则zip、combinelatest操作符方法就无法实现了。
使用merge操作符,打印的是一个一个的数据,而不是合并之后的数据。
问题:合并流返回的数据,当流不确定有值时,如何处理?

阅读 5.8k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题