rxjs6 Observable.of()方法报错/不存在

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/EwainCai/article/details/89497313

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

注意导入也有所修改

猜你喜欢

转载自blog.csdn.net/EwainCai/article/details/89497313