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操作符,打印的是一个一个的数据,而不是合并之后的数据。
问题:合并流返回的数据,当流不确定有值时,如何处理?


qq_笑_17
浏览 1212回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript