📅  最后修改于: 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'
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() |