【问题标题】:RXJS 5 .subscribe() without argumentsRXJS 5 .subscribe() 不带参数
【发布时间】:2017-02-19 21:35:52
【问题描述】:

所以一个快速的问题。我已经使用 RxJS 5 几个月了,我遇到了一些我不太了解的行为,因为我无法在任何地方查找它。

我的情况是,仅使用 .subscribe(); 订阅可观察链不会触发可观察。

但是,如果我添加一个 onNext 回调(是否为空),则可观察触发器和链式进程:.subscribe(() => {});

谁能解释为什么会发生这种行为?

【问题讨论】:

  • 不带参数调用.subscribe(); 应该可以。你能发布一个更完整的例子吗?
  • 你能做一个演示吗? subscribe() 的所有参数都是可选的,它可以在没有任何参数的情况下工作。
  • 在上面的例子中检查了相同的函数(现在在 RxJS 5.2.0 和 Ionic 2.2.0 上),现在它在没有主体的情况下处理。我会保持这个线程打开,以防问题再次出现。
  • 这对我在 RxJS 5.2.0 和 Ionic 2.2.0 上仍然不起作用。会不会是您更改了@DarkNeuron 的其他内容(例如构建配置、打字稿版本或其他内容?)
  • 这个问题已经在rxjs@5.4.2上解决了。这里所有的细节和解决问题的公关stackoverflow.com/a/45608918/8090627

标签: angular typescript ionic2 rxjs5 subscribe


【解决方案1】:

.subscribe() 实际上不需要任何参数,如果没有给出任何参数,它只会创建一个emptyObserver,它应该也可以工作。

但有可能在某些 5.0.0-beta 版本中存在与此相关的问题 - 如果您使用其中一个版本,您应该更新到更稳定的版本。

const obs$ = Rx.Observable.of("Foo")
  .do(() => console.log("triggered!"));
  
obs$.subscribe();
obs$.subscribe();
<script src="https://unpkg.com/rxjs@5.1.1/bundles/Rx.min.js"></script>

【讨论】:

  • 我也在使用 RxJS 5.1.1。我将尝试发布我的代码示例。
【解决方案2】:

感谢 Damian Hercun 告知这是 RxJS 5.4.2 中现已修复的错误。

信息:

https://github.com/ReactiveX/rxjs/pull/1935

https://github.com/ReactiveX/rxjs/issues/1921

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多