2017-06-19 55 views
2

我目前從JS開始使用observables,而且我看到了一個看似真正基本的東西的總障礙。我已經創建了下面這個超級簡單的例子,儘管它本身無用,但它看起來像它應該工作,但它不。最後一行會引發錯誤。Rx.js unsuscribe給予錯誤

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.unsubscribe is not a function

我的問題基本上是,爲什麼我不能從上面觀察退訂?或者我應該如何取消訂閱?

+4

它扔了什麼錯誤? – cgTag

+0

它正在拋出'Uncaught TypeError:subscription.unsubscribe不是函數' –

+0

'console.log(subscription)'會爲您節省大量時間。 – cgTag

回答

3

您可能正在使用Rx v4.x,不是嗎?在這種情況下,該方法是disposeunsubscribe

subscription.dispose(); 

你兩個選擇,其一是:

  • 升級到rxjs V5;
  • 取代unsubscribedispose

如果代碼庫還沒有玉米粥代碼呢,我建議你升級到V5 :)

+0

考慮到他提到rx.js,那麼是的,他正在使用RxJs 4 –

+0

@ Jota.Toledo尼斯確實抓到了,但仍然不夠確定:) – atomrc

+0

是的,但錯誤證實了它:p –