📜  RxJS-最新更新

📅  最后修改于: 2020-10-20 05:34:24             🧑  作者: Mango


在本教程中,我们将使用RxJS版本6。 RxJS通常用于处理反应式编程,并且在Angular,ReactJS中更常使用。 Angular 6默认情况下会加载rxjs6。

与版本6相比,RxJS版本5的处理方式有所不同。如果将RxJS 5更新为6,代码将中断。在本章中,我们将看到处理版本更新方式的不同。

如果您将RxJS更新为6,并且不想进行代码更改,也可以这样做,并且必须安装以下软件包。

npm install --save-dev rxjs-compact

该软件包将负责提供向后兼容性,并且旧代码将在RxJS版本6上正常运行。如果要对代码进行更改以使其在RxJS 6上正常运行,则需要进行以下更改。

用于运算符,可观察对象,主题的程序包已进行了重组,因此,对导入进行了重大更改,下面将对其进行说明。

运算符进口

根据版本5,对于运算符,应包括以下导入语句-

import 'rxjs/add/operator/mapTo'
import 'rxjs/add/operator/take'
import 'rxjs/add/operator/tap'
import 'rxjs/add/operator/map'

在RxJS版本6中,导入将如下所示-

import {mapTo, take, tap, map} from "rxjs/operators"

导入创建可观察对象的方法

根据版本5,在使用Observables时,应包括以下导入方法-

import "rxjs/add/observable/from";
import "rxjs/add/observable/of";
import "rxjs/add/observable/fromEvent";
import "rxjs/add/observable/interval";

在RxJS版本6中,导入将如下所示-

import {from, of, fromEvent, interval} from 'rxjs';

进口观察物

在RxJS版本5中,在使用Observables时,应包含以下import语句-

import { Observable } from 'rxjs/Observable'

在RxJS版本6中,导入将如下所示-

import { Observable } from 'rxjs'

导入主题

在RxJS版本5中,应包括以下主题-

import { Subject} from 'rxjs/Subject'

在RxJS版本6中,导入将如下所示-

import { Subject } from 'rxjs'

如何在RxJS 6中使用运算符?

pipe()方法在创建的可观察对象上可用。它是从5.5版添加到RxJS的。现在,使用pipe()可以按顺序一起处理多个运算符。这是在RxJS版本5中使用运算符。

import "rxjs/add/observable/from";
import 'rxjs/add/operator/max'

let list1 = [1, 6, 15, 10, 58, 2, 40];
from(list1).max((a,b)=>a-b).subscribe(x => console.log("The Max value is "+x));

从RxJS 5.5版开始,我们必须使用pipe()执行运算符-

import { from } from 'rxjs';
import { max } from 'rxjs/operators';

from(list1).pipe(max((a,b)=>a-b)).subscribe(x => console.log(
   "The Max value is "+x)
);

运营商更名

在软件包的重组过程中,一些运算符由于与javascript关键字冲突或匹配而被重命名。列表如下所示-

Operator Renamed to
do() tap()
catch() catchError()
switch() switchAll()
finally() finalize()
throw() throwError()