原文: 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