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));

注意导入也有所修改

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