我们在这里在详细介绍一下observable的性质:

image.png
do() 工具类操作符:可以做调试,可以做外部条件的设置,当我们需要对于流之外的属性进行设置。

image.png
scan()变换类操作符,reduce()数学类操作符。

image.png
过滤类操作符:

image.png
创建类的操作符:

image.png
我们首先先来看一下interval()的使用方法:如下所示每一秒输出一个一个数字 订阅中有三个参数,第一个参数是next参数,
第二个参数是error参数, 第三个参数是 complete参数 , 因为interval 参数不会出现错误,也没有停止 ,所以就不会看到
后面参数的输出。

image.png
接下来我们修改代码,我们去前三个输出值

image.png
下面的代码和上面的能完成一样的功能:

image.png
下面的写法和上面一样都能完成功能:

image.png
接下来我们来看一下timer()方法,timer方法里面的参数,第一个参数是延时多长时间输出,第二个参数是间隔多长时间输出

image.png
接下来我们看一下do()方法,do相当于一个临时的subscribe方法,但是可以处理外部的数据。

image.png
接下来我们来看filter()方法:过滤方法 例如下面过滤偶数。

image.png
我们可以使用filter()配合其他的first()和last()以及skip()方法

image.png

image.png

image.png
skip过滤掉前两个数值的例子如下所示:

image.png
scan()的主要是可以传入函数进行过滤,示例如下:

image.png
reduce()主要是只发送最终的流,仅仅发射一次:

image.png
同样可以是用下面的方式,将最终输出的流组成相应的形式。可以组成数组或者是组成相应的对象。

image.png
我们同样可以看一下出错的时候是什么情况:

image.png
调用throw()

image.png
调用empty()

image.png
总结:

image.png
工具类do() ,一般用于调试,输出log信息,为下一步的动作做准备工作,还有就是和外围进行交互。

image.png
变换类scan() ,每个元素操作之后都会输出出来,同时会把累加的结果传递到下一个值,同时会的到一个流,个数和原来流一样的流。

image.png
数学类reduce(), 累加之后仅仅输出一个值, 可以在初始化值给一个array或者一个对象, 最终的数据流可已变成 一个数组或者一个对象,或者对象数组的形式。
过滤类操作符 skip first last filter take

image.png