[译] RxJS文档05——Subscription

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

什么是Subscription? Subscription是一个对象,示意一种可被措置的资本,一般指代一个Observable流的实行历程。

Subscription有一个主要的要领unsubscribe(),不需要参数,仅仅用来开释掉subscription实例所持有的的资本。
在之前版本中的RxJS,Subscription被称为“可被措置的”。


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流实行的对象。

多个Subscription可以被组合在一起,从而使挪用个中一个Subscription的unsubscribe()要领可以让一切的Subscription都作废流的实行。要做到这一点,可以将一个subscription实例“增加”到另一个中去:


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。

    原文作者:阿尔特纳晨风
    原文地址: https://segmentfault.com/a/1190000009904751
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞