【问题标题】:Difference between reactivex.io/rxjs/class/es6/Observable and rxjs.dev/api/index/class/Observablereactivex.io/rxjs/class/es6/Observable 和 rxjs.dev/api/index/class/Observable 之间的区别
【发布时间】:2022-01-18 23:25:42
【问题描述】:

当我遇到 Observable 的两种不同定义时,我才刚刚开始学习 RxJS:

  1. https://reactivex.io/rxjs/class/es6/Observable.js~Observable.html
  2. https://rxjs.dev/api/index/class/Observable

哪个是合法的?

【问题讨论】:

标签: javascript angular rxjs


【解决方案1】:

我猜第一个似乎是 RxJs Observable 的旧实现。

在该页面本身中,如果您单击 RxJs 导航“HOME”,它会显示“Rediring to newer docs”并导航到第二个版本。

【讨论】:

  • 那么新的 Observable (rxjs.dev/api/index/class/Observable) 只有 5 个方法?其余的在哪里(例如订阅)
  • 它们与 Observable 类本身分离(就像在旧版本中一样)。现在您必须导入所有运算符 (rxjs.dev/guide/operators) 并在 .pipe 函数中使用它们(这是 Observable 的一部分)
  • 但是例如运算符“刚刚”在哪里定义。新的实现似乎缺少一些东西。亚努斯
【解决方案2】:

很高兴您正在挖掘源代码。查看 npm 包“rxjs-compat”,其中包含有关从 rxjs 的先前版本迁移到最新版本的附加信息。更直接地说,与以前的版本相比,rxjs observable 的实际实现是不同的,而是你需要与 import Observable 然后用于实例化 observables 的方法略有改变。以前版本和新版本中的基本可观察对象是相同的,但是在最新版本的上下文中查看旧代码可能会令人困惑。如果您想了解 RxJS 的复杂性,请关注最新版本并查看 Ben Lesh 的文章或演示文稿。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2011-06-09
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多