Rxjs--创建类型操作符

92 阅读2分钟

RxJS是一个基于响应式编程思想的JavaScript库,它提供了一套强大的工具来处理异步数据流。RxJS中的操作符可以帮助我们更方便地处理异步操作,例如从服务器获取数据、处理用户事件等等。在RxJS中,我们可以使用各种操作符对Observable进行各种各样的操作和转换。本文将介绍RxJS中创建类型的操作符,包括of、from、interval、timer和range。

1. of操作符

of操作符用于将一系列的数值或对象转换为Observable,它会立即发出这些值并完成Observable。例如:
import { of } from 'rxjs';

const source$ = of(1, 2, 3);
source$.subscribe(value => console.log(value));

// 输出结果:
// 1
// 2
// 3

对应弹珠图: image.png 在上面的示例中,我们使用of操作符将数值1、2、3转换为一个Observable,然后订阅这个Observable并输出它发出的值。

2. from操作符

from操作符用于将一个数组、类数组对象、Promise、迭代器或类似数据结构转换为Observable。例如:
import { from } from 'rxjs';

const source$ = from([1, 2, 3]);
source$.subscribe(value => console.log(value));

// 输出结果:
// 1
// 2
// 3

对应弹珠图: image.png 在上面的示例中,我们使用from操作符将一个数组转换为一个Observable,并输出它发出的值。

3. interval操作符

interval操作符用于创建一个Observable,该Observable会每隔一段时间发出一个自增的数值。例如:
import { interval } from 'rxjs';

const source$ = interval(1000);
source$.subscribe(value => console.log(value));

// 输出结果:
// 0
// 1
// 2
// ...

对应弹珠图: image.png 在上面的示例中,我们使用interval操作符创建一个Observable,该Observable每隔一秒钟发出一个自增的数值,并输出这些数值。

4. timer操作符

timer操作符用于创建一个Observable,该Observable会在指定时间后发出一个数值,然后完成Observable。例如:
import { timer } from 'rxjs';

const source$ = timer(1000);
source$.subscribe(value => console.log(value));

// 输出结果:
// 0

const source$ = timer(500, 1000);
source$.subscribe(value => console.log(value));

// 输出结果:
// 0
// 1
// 2
// ...

对应弹珠图: image.png

image.png 在上面的示例中,我们使用timer操作符创建一个Observable,该Observable在一秒钟后发出一个数值0,并完成Observable。如果传递第二个参数,则表示该Observable在500毫秒后产生第一个数值0,此后每隔一秒钟产生一个自增的数值。

5. range操作符

range操作符用于创建一个Observable,该Observable会从指定的起始数值开始发出一系列连续的数值,数量由count参数决定。例如:
import { range } from 'rxjs';

const source$ = range(1, 3);
source$.subscribe(value => console.log(value));

// 输出结果:
// 1
// 2
// 3

对应弹珠图: image.png 在上面的示例中,我们使用range操作符创建一个Observable,该Observable从数值1开始发出3个连续的数值,并输出这些数值。

ps:弹珠图是以时间为轴,时间段的长度表示不同的时间间隔,500ms的时间间隔在弹珠图上显示的长度一定是近似等于1000ms时间间隔长度的一半