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操作符,打印的是一个一个的数据,而不是合并之后的数据。
问题:合并流返回的数据,当流不确定有值时,如何处理?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
http://reactivex.io/rxjs/clas...
var time = Rx.Observable.of().defaultIfEmpty([]);