rxjs里takeWhile operators的用法
时间:2022-07-28
本文章向大家介绍rxjs里takeWhile operators的用法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
takeWhile subscribes and begins mirroring the source Observable. Each value emitted on the source is given to the predicate function which returns a boolean, representing a condition to be satisfied by the source values. The output Observable emits the source values until such time as the predicate returns false, at which point takeWhile stops mirroring the source Observable and completes the output Observable.
测试例子:
const result = clicks.pipe(takeWhile((ev: MouseEvent) => ev.clientX > 400 ));
result.subscribe(x => + console.log('diablo: ' + x.clientX));
测试结果:
(1) 点击屏幕下方区域,打印x: 919 (2) 鼠标移至屏幕左上角,确保点击区域的clientX < 400, 此时output Observable停止监控。 (3) 此时无论再怎么点击,result Observable也无法emit value了。
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(tap(ev => console.log('diablo: ' + ev), takeWhile((ev: MouseEvent) => ev.clientX > 400 )));
result.subscribe(x => + console.log('diablo: ' + x.clientX));
以上例子,takeWhile无法起到自动停止监控的目的。
将takeWhile和tap的顺序调一下,就又能正常工作了:
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(takeWhile((ev: MouseEvent) => ev.clientX > 400 ), tap(ev => console.log('diablo: ' + ev), ));
result.subscribe(x => + console.log('diablo: ' + x.clientX));
- C/C++——vector的基本操作总结
- 数据库负载急剧提高的应急处理(二) (r9笔记第55天)
- 社团划分——有向图的Label Propagation算法
- Python基础——网络编程
- 分区表的一个持续改进方案(r9笔记第53天)
- python jieba分词(结巴分词)、提取词,加载词,修改词频,定义词库
- MySQL中的NULL和空串比较 (r9笔记第52天)
- Core-periphery decomposition--核心-外围模型R代码整理
- 停止数据库没有响应的问题分析(r9笔记第51天)
- Hive——巧用transform处理复杂的字符串问题
- 停止数据库没有响应的问题分析(r9笔记第50天)
- 一个SQL语句引发的ORA-00600错误排查(一) (r9笔记第64天)
- 一个SQL语句引发的ORA-00600错误排查(二)(r9笔记第65天)
- 关于all_procedures的问题分析 (r9笔记第61天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法