[譯] RxJS文檔05——Subscription

原文: http://reactivex.io/rxjs/manu...html

什麼是Subscription? Subscription是一個對象,表示一種可被處置的資源,一般指代一個Observable流的執行過程。react

Subscription有一個重要的方法unsubscribe(),不須要參數,僅僅用來釋放掉subscription實例所持有的的資源。
在以前版本中的RxJS,Subscription被稱爲「可被處置的」。code

var observable = Rx.Observable.interval(1000);
var subscription = observable.subscribe(x => console.log(x));
// Later:
// This cancels the ongoing Observable execution which
// was started by calling subscribe with an Observer.
subscription.unsubscribe();

Subscription本質是一個含有unsubscribe()方法,用來釋放資源或者取消Observable流執行的對象。server

多個Subscription能夠被組合在一塊兒,從而使調用其中一個Subscription的unsubscribe()方法可以讓全部的Subscription都取消流的執行。要作到這一點,能夠將一個subscription實例「添加」到另外一箇中去:htm

var observable1 = Rx.Observable.interval(400);
var observable2 = Rx.Observable.interval(300);

var subscription = observable1.subscribe(x => console.log('first: ' + x));
var childSubscription = observable2.subscribe(x => console.log('second: ' + x));

subscription.add(childSubscription);

setTimeout(() => {
  // Unsubscribes BOTH subscription and childSubscription
  subscription.unsubscribe();
}, 1000);

執行一下,咱們能夠看到輸出是這樣的:對象

second: 0
first: 0
second: 1
first: 1
second: 2

Subscription也有一個名爲remove(otherSubscription)的方法,用來撤銷已經添加到其中的其餘Subscription。rxjs

相關文章
相關標籤/搜索