【问题标题】:rxjs-compat vs pipe() methodrxjs-compat 与 pipe() 方法
【发布时间】:2019-10-20 19:16:42
【问题描述】:

我曾经用 Observable 链接方法

Observable
.of('bla')
.map(text => 1)
.filter(value => value === 1)
.subscribe(value => console.log(value));

但现在,我意识到,从 Angular V6 开始,我们应该像使用 pipe() 方法

Observable.of('bla').pipe(
map(text => 1),
filter(value => value === 1)
).subscribe(value => console.log(value));

当我看到很多使用 pipe() 的代码时,我想我应该使用它,但它真的是“强制性的”吗?还是 rxjs-compat 可以解决问题?

【问题讨论】:

  • rxjs-compat 是一种临时措施,可让您将 rxjs6+ 与尚未迁移的库一起使用。但是所有库都迁移了很长时间。轮到你了。据我记得,使用 CLI 升级工具进行升级会自动迁移您的代码。
  • 而新版本是of('bla') 而不是Observable.of('bla')
  • @JBNizet 或许你也可以指点一下如何迁移?

标签: angular rxjs


【解决方案1】:

RxJS compat 只不过是一个向后兼容层,它简化了从 RxJS 5 到 RxJS 6 的更新/迁移过程。你不应该依赖 RxJS compat 进行任何长期开发,而是慢慢升级你的代码库利用任何 RxJS 运算符。您可以阅读更多关于migration guide 的详细信息。

在 RxJS 6 中,RxJS 运算符现在使用pipe() 实用程序链接(而不是点链接),因此它们也称为可管道运算符。

由于您使用的是 Angular,我建议您也查看 Angular update guide,其中包括更新 Angular 和 RxJs 版本的一系列步骤。

此外,Observable.of() 在 RxJS 6 中已被 of() 运算符取代。

of('bla')
  .pipe(
    map(text => 1),
    filter(value => value === 1)
  ).subscribe(value => console.log(value));

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 1970-01-01
    • 2019-03-24
    • 2018-12-18
    • 2019-02-22
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 2018-11-04
    相关资源
    最近更新 更多