RxJS 如何根据上一步返回值分流呢?
例如:
const x = Rx.Observable.create((observer) => {
console.log('in x');
observer.onNext('x');
})
const y = Rx.Observable.create((observer) => {
console.log('in y');
observer.onNext('y');
})
const source = Rx.Observable
.range(1, 2)
.flatMap((item) => {
if(item === 1){
return x;
}else{
return y;
}
})
.flatMap(y)
const subscription = source.subscribe(
(data) => {
console.log('Next: ' + data);
}
);
从 1 到 2 ,希望等于 1 的执行顺序是 x -> y , 而等于 2 的时候只执行 y
这样需要怎么修改呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
merge
不一定能保证y
在x
后面,如果他们是异步的话。如果一定要保证
x
和y
的顺序,可以使用concat
。但前提是
x
和y
要明确地定义什么时候结束,所以需要调用complete
方法: