Ben*_*n M 6 filter observable rxjs rxjs5 angular
我有一个Observable,可以从文本框中监听一些用户输入.如果观察到的字符串长度> = 3(filter),则执行一些HTTP调用(switchMap).
现在我想以某种方式检测用户输入是否已被过滤.原因:
如果已完成HTTP调用,则应显示结果.
如果用户输入已过滤(==无效),则应清除结果.
这是我想要的代码(参见:) ifFiltered:
this.userInput.valueChanges
.filter(val => val && val.length >= 3)
.ifFiltered(() => this.results = [])
.switchMap(val => getDataViaHTTP())
.subscribe(val => this.results = val);
Run Code Online (Sandbox Code Playgroud)
我知道,我可以将这个逻辑放在filter这个简单例子的函数中.但是,如果我有10个不同的过滤器呢?
我是否错过任何满足我需求的方法?
提前致谢!
要么像这里的 RxJS 建模那样使用分区,否则使用 Observables 运算符控制结构
或者,如果前一个过滤条件为 true 或 null,则使用映射代替过滤器并通过管道传递对象。这样你就可以用过滤器在链中任何你想要的地方捕获空值。
最后一个选项调用过滤器函数的 else 部分中的某个函数
| 归档时间: |
|
| 查看次数: |
10444 次 |
| 最近记录: |