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