📅  最后修改于: 2023-12-03 15:33:16.610000             🧑  作者: Mango
从RxJS 6开始,Observable.create
已被弃用,并不推荐使用。该方法会返回一个Observable对象,它可以用来定义一个自定义的Observable,但是这种方式有许多缺点。
Observable.create
不够直观,既繁琐又难以维护。Observable.create
内部添加取消逻辑时十分困难。Observable.create
容易出现内存泄漏的问题。使用RxJS提供的静态构造函数或实例方法来创建Observable对象。
of
: 创建一个Observable,发射一系列指定的值,并在完成之前发出这些值。 import { of } from 'rxjs';
const source$ = of(1, 2, 3);
from
: 将数组、类数组对象、Promise和Iterable转化为Observable对象。 import { from } from 'rxjs';
const source$ = from([1, 2, 3]);
interval
: 创建一个发射无限递增整数序列的Observable,并以“interval”毫秒的时间间隔发送每个数字。 import { interval } from 'rxjs';
const source$ = interval(1000);
map
: 将源Observable中的每个值都映射到一个新的值。 import { from } from 'rxjs';
import { map } from 'rxjs/operators';
const source$ = from([1, 2, 3]).pipe(map(value => value * 2));
filter
: 仅从源Observable中发出那些满足指定条件的值,该条件由一个指定的谓词函数定。 import { from } from 'rxjs';
import { filter } from 'rxjs/operators';
const source$ = from([1, 2, 3]).pipe(filter(value => value > 1));
通过使用这些方法,我们可以更加简单、直观地创建Observable对象,并且能够更方便地进行操作和管理。
虽然Observable.create
在某些情况下会有用,但在大多数情况下,使用RxJS提供的静态构造函数或实例方法是更好的选择。这些方法提供了一个更简单、更直观的API,能够更好地支持取消逻辑和防止内存泄漏。