一、创建类操作符
1.创造的定义:是指这些操作符不依赖任何其他Observable对象,就可以凭空或者根据其他数据源创造出一个Observable对象。
2.创建类操作符就是数据的源头,因此大部分创建类操作符都是静态操作符
二、创建同步数据流
1.对于同步数据流,数据之间的时间间隔可以忽略不计。
2.create是最简单的创建操作,内部就是直接调用创建Observable的构造函数,不需要导入任何其他模块就可以使用。(静态)
源码如图:
3.of,用于列举数据,产生数据是同步的,数据产生后,Observable也完结,并且of属于cold Observable,所以对于任何一个Observer订阅者都会吐出同一组数据,所以可以反复使用。(静态)
适用场景:想把已知不多的数据转成Observable对象,进行处理。
ps:该方法在rxjs 4版本中名为just,所以如果要升级rxjs,则需要更名操作。
4.range,指定范围,传入参数指定开始值和长度,即可产生序列,第一个参数不一定要是整数,可以为1.5或者其他任何数字,每次只能递增1。(静态)
适用场景:产生一个很大连续数字序列。
5.generate,循环创建,定制性更强,第一个参数为值,初始值,第二个参数为函数,表示继续的条件,第三个参数为函数,表示值的递增,第三个参数为函数,表示结果,应该保持这三个函数都是纯函数。(静态)
适用场景:若在js中使用for循环实现,是用哪个rxjs实现就可以使用generate。
6.repeate,重复数据的数据流,可以重复上游Observable中的数据若干次,而且会在上游执行完后才会执行,若上游不执行complete,则repeate无法正常执行,该方法中参数表示重复的次数,若不传参数或为负数,则无限次执行。(动态)
ps:该方法在rxjs 4版本中为静态操作符,可传入两个参数,第一个为循环的对象,第二个是循环的次数。
7.empty,产生一个直接完结的Observable,没有参数,不产生任何数据。
8.throw方法昌盛的Observable对象什么也不做,直接报错,传入的参数就是报错的信息。
ps:注意throw是js中的关键字,导入时可使用别名。
9.never,真正的什么也不做,直到永远。