RxJS - 最新更新
本教程使用 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,在使用可觀察物件時,應包含以下匯入方法:
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 中,在使用可觀察物件時,應包含以下匯入語句:
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 關鍵字衝突或匹配。列表如下所示:
| 運算子 | 重新命名為 |
|---|---|
| do() | tap() |
| catch() | catchError() |
| switch() | switchAll() |
| finally() | finalize() |
| throw() | throwError() |
廣告