在RxJS中有条件地选择observable
Conditionally choose observable in RxJS
我想知道如何创建一个新的可观察对象,它将根据第一个可观察对象是否为空返回另外两个可观察对象之一(默认情况下不调用第二个可观察对象)。如:
// scenario 1
let obs1 = Observable.empty();
let obs2 = Observable.of([1,2,3]);
// This line doesn't work, but is essentially what I'm attempting to do
let obs3 = (obs1.isEmpty()) ? obs2 : obs1;
obs3.subscribe( i => console.log('Next: ', i));
// Next: 1
// Next: 2
// Next: 3
// Complete
// scenario 2
let obs1 = Observable.of([6,7,8]);
let obs2 = Observable.of([1,2,3]);
// This line doesn't work, but is essentially what I'm attempting to do
let obs3 = (obs1.isEmpty()) ? obs2 : obs1;
obs3.subscribe( i => console.log('Next: ', i));
// Next: 6
// Next: 7
// Next: 8
// Complete
你可以试试:
let obs3 = obs1.isEmpty().map(x => x? obs2 : obs1;)
我马上检查一下是否可以。
是的,根据文档,它应该是好的,因为isEmpty
发出一个布尔值,如果可观察对象是空的是真,所以你可以使用它来挑选你想要的可观察对象
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 如何使用jQuery选择下拉列表的值
- jquery点击函数select&取消选择
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 按照选项卡索引的顺序循环一个jQuery选择
- 在动态创建的元素上获取对特定选择器的引用
- AngularJS-在JSON选择器中使用变量名
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 获取选择框的状态
- d3基于用户选择动态更新节点
- 提交后保留下拉选择的值
- JQuery对动态创建的对象进行选择
- 无法在Ionic select中预先选择最后一个选项
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery自动完成阻止选择后聚焦
- 使用此选项选择父类内部的类
- 分别选择value和text observable
- 在RxJS中有条件地选择observable
- 基于observable,从可观察对象的对象中选择observable
- 如何在 Observable.bindCallback 方法中使用 RXJS 选择器函数