RxJS操作符(二)

一、Observable的性质

三种状态:nex, error, complete

二、特殊类型的Observable

  • 永不结束
  • Never
  • Empty
  • Throw

永不结束:没有complete状态,比如计时器,每隔1s发射item。

Never:完全不发射item,也不结束。【测试时帮助构成条件】

Empty:流里没有元素,直接进入Complete状态。

Throw:不发生任何东西,直接进入Error状态。 

三、工具类操作符do

一般用来做调试。

或者外部条件的设置。

流进入到下一步之前需要对外部的东西进行改变【写文件之类】

四、变换类操作符:scan

五、数学类操作符reduce

数组中也有,使用比较频繁。

六、过滤类操作符 filter,take,first/last,skip...

七、常见创建类操作符:Interval,Timer

1、interval

const interval$ = Rx.Observable.interval(1000);
interval$.subscribe(val=>console.log(val));

通过take取前3个来看三种状态的效果

const interval$ = Rx.Observable.interval(1000).take(3);
interval$.subscribe(
  val=>console.log(val),
  err=>console.log(err),
  ()=>console.log('I am complete')
);

2、Timer

const timer$= Rx.Observable.timer(1000);

timer$.subscribe(v=>console.log(v));
//控制台只输出一个值0

第一个参数:delay多长时间

第二个参数:之后要以什么频率发送

const timer$= Rx.Observable.timer(1000,1000);
timer$.subscribe(v=>console.log(v));
//类似interval,但是interval不能指定开始延迟时间

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:https://www.cnblogs.com/starof/p/9137865.html 有问题欢迎与我讨论,共同进步。

猜你喜欢

转载自www.cnblogs.com/starof/p/9137865.html