Javascript Rx.js不受约束地给予gerror

Javascript Rx.js不受约束地给予gerror,javascript,rxjs,Javascript,Rxjs,我现在从JS中的Observable开始,我遇到了一个似乎非常基本的障碍。我在下面创建了一个超级简单的例子,虽然这个例子本身毫无用处,但在我看来它应该可以工作,但事实并非如此。最后一行抛出一个错误 const obs1 = Rx.Observable.timer(2000) .map(() => {return Math.random() > 0.5}); const subscription = obs1.subscribe( (v) => { c

我现在从JS中的Observable开始,我遇到了一个似乎非常基本的障碍。我在下面创建了一个超级简单的例子,虽然这个例子本身毫无用处,但在我看来它应该可以工作,但事实并非如此。最后一行抛出一个错误

const obs1 = Rx.Observable.timer(2000)
    .map(() => {return Math.random() > 0.5});

const subscription = obs1.subscribe(
   (v) => {
      console.log('hello world: ', v)
   });

subscription.unsubscribe();
错误是

TypeError:subscription.Unsubscripte不是一个函数


我的问题基本上是,为什么我不能从上面的观察者那里退订?或者我应该如何取消订阅?

您可能正在使用Rx v4.x,不是吗?在这种情况下,方法是
dispose
not
unsubscribe

subscription.dispose();
您的两个选择是:

  • 升级至rxjsv5
  • unsubscribe
    替换为
    dispose

如果你的代码库还没有足够的代码,我建议你升级到v5:)

它会抛出什么错误?它抛出了“未捕获的类型错误:订阅。取消订阅不是一个函数”
控制台。日志(订阅)
会为你节省很多时间。尝试过之后,看到方法丢失,查看文档,没有帮助,尝试在谷歌上搜索订阅类型,但没有帮助。所以不,这并没有节省我任何时间。考虑到他提到了rx.js,那么是的,他正在使用RxJs4@Jota.Toledo捕捉确实不错,但仍然不足以确定:)是的,我使用的是v4。我将尝试更新到v5。如果可行,我会接受这个答案。升级到v5解决了这个问题。我无法确认更改为dispose是否有效。我认为可以肯定地说,它会解决问题:)很高兴我能提供帮助:)