在本教程中,我们将使用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上正常运行,则需要进行以下更改。
对操作员,可观察到的事物,主题的软件包进行了重组,因此,对导入进行了重大更改,下面将对其进行说明。
import operator
根据版本5,对于operators,应包括以下导入语句:
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"
导入创建Observables方法
根据版本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';
Import of Observables
在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() |
作者:terry,如若转载,请注明出处:https://www.web176.com/rxjs/1966.html