RxJS系列教程(七) 初试操作符

操作符可以说是RxJS中的重中之重。它就是之前文章说的pipeline中的函数。

操作符是纯的,高阶的函数,永远不会改变observable对象,而是返回一个新observable对象,同时也为了链式调用。

操作符同样也是惰性求值的。

操作符有两种类型,实例的和静态的。前文出现过的from和of都属于静态类型(这里是面向对象的概念)。

平时最常用的几个操作符是map,filter以及reduce,这三个已经被讲烂了,我们这里就不讲了。我们讲一下可以和reduce类似的一个操作符scan。

在用到reduce的地方都可以直接用scan替换。我们知道reduce是个聚合操作,最后返回一个值;而scan也是聚合操作,但它返回的是多个值。这些值是聚合操作中的每一步的值。如下图:

scan操作符
scan操作符

take操作符:比如take(3),只需要3个事件;

first操作符:获取事件流中的第一个事件;

last操作符:获取事件流中的最后一个事件;

以上三个操作符都可以归为过滤类型的操作符。

do操作符:这是一个工具类型的操作符,它的作用是方便我们进行debug和跟踪数据变化。你可以用它做任何操作,一般都是有副作用的操作,比如控制台打印,写入文件,修改DOM节点等等,但它不改变事件流中的事件。这在函数式编程称为K combinator,或者在一些库中叫tap函数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容