rxjs6 Observable.of()方法報錯/不存在

RxJs 6於2018年4月24日正式發佈,相對於RxJs 5,做出了大量的改動。

 

其中有很重要的一項:使用函數而不是類來操作可觀察對象(Observables)。所有的Observable類已被移除。

也就是說RxJs 6不能再繼續使用Observable.of()方法,應該使用函數of()。

 

同時鏈式操作被管道操作所替代:

.funName() 變爲:.pipe(funName())

 

最近在學習angular時,教程有一個使用舊版本的地方

inport {Observable} from "rxjs";

return Observable.of(valid ? null : {mobile : true}).delay(5000);

修改方法1:

官方給出開一個過渡方案,可以使最新版本兼容舊版本代碼:

npm install rxjs-compat

rxjs-compat提供了V5與v6API間的臨時兼容層,實質上rxjs-compat爲您的代碼庫提供了所需的v5版本功能

安裝rxjs-compat會導致打包後代碼包體積的增加,如果你使用的是4.0.0版本以下的Webpack,該影響會被放大。

因此建議升級完成後將rxjs-compat移除。

 

修改方法2:

使用函數替代:

import {of} from 'rxjs';

import {delay} from 'rxjs/operators';



return of(valid ? null : {mobile: true}).pipe(delay(5000));

注意導入也有所修改

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章