常用操作符
- of
将单个对象转成observable
- from
将数组转成observable
- fromEvent
监控事件(点击,双击,鼠标移动)
- interval
定时发射数据
- merge
合并
- concat
连接
- race
赛跑,取最快的
- zip
咬合,一一配对
- combineLatest
组合最新的
- forkJoin
都结束了取最后一个
例子
import { interval, fromEvent, of, from, merge, concat, race, zip, combineLatest, forkJoin } from 'rxjs';
of(1)//1
of(1,2,3)//1---2---3
of({name:'lili',age:12})//{name:'lili',age:12}
of([1,2,3])//[1,2,3]
from([1,2,3])//将数组变成observable
//1---2---3
fromEvent(document,"click")//点击一次发射一次
interval(1000)//定时
//0---1---2...
merge(interval(1000),interval(500))//不管内部哪个源发射了数据都会发射出来
concat(of(1,2,3),interval(1000))//第一个源的数据先发射出来,当第一个结束了发射第一个源的数据
//1---2---3---0---1---2...
race(interval(3000),interval(4000),interval(2000))//取最快发射第一个源的数据,这里发射的实际时
//interval(2000)
zip(interval(3000),interval(4000),interval(2000))//配对发射,都发射了第一个,将所有内部源的第一个数据组成数组发射出来
//[0,0,0]---[1,1,1]---[2,2,2]---[3,3,3]
combineLatest(interval(3000),interval(4000),interval(2000))
forkJoin(of(1,2),from([1,2,3]))//都结束了以后取最后一个发射的数据组成数组输出来
//[2,3]
combineLatest
![](https://img.haomeiwen.com/i18052029/5da9027b3356508f.png)
当所有源的数据都出来了以后发射第一个组合数据,此后每一次源变化取所有源的最后一个数组组合发射出来
forkJoin
![](https://img.haomeiwen.com/i18052029/f24b238ca1be0240.png)
当所有源都结束了,取所有源的最后一个组合发射出来
网友评论