资讯专栏INFORMATION COLUMN

[译] RxJS文档05——Subscription

walterrwu / 2359人阅读

摘要:原文什么是是一个对象,表示一种可被处置的资源,通常指代一个流的执行过程。在之前版本中的,被称为可被处置的。本质是一个含有方法,用来释放资源或者取消流执行的对象。

原文: 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://www.ucloud.cn/yun/83626.html

相关文章

  • []RxJS文档03——剖析Observable

    摘要:通过执行和可以向订阅者推送不同的通知。之后,执行过程可能被处理掉。当调用并得到观察者时,在中传入的函数将会被执行。每次执行都会触发一个单独针对当前的运行逻辑。通知不发出任何值,表示流的结束。 原文:http://reactivex.io/rxjs/manu... Rx.Observalbe.create()或者创建操作符,可以 创建(created) Observable流。Obser...

    netScorpion 评论0 收藏0
  • []RxJS06——Subject

    摘要:举例来说,每年都有生日是一道数据流,但是一个人的年龄却是一个流。运行结果显示,第二个在订阅之后,获得了数据流中最后毫秒事件内产生的和三个值。 原文:http://reactivex.io/rxjs/manu... Subject是什么? RxJS的Subject是Observable的一个特殊类型,他可以将流中的值广播给众多观察者(Observer)。一般的Observalbe流是单一...

    gitmilk 评论0 收藏0
  • []RxJS文档01——介绍

    摘要:原文是一个使用可观察量队列解决异步编程和基于事件编程的库。提供了几个管理异步事件的核心概念可观察量,代表了一个由未来获取到的值或事件组成的集合。相当于事件触发器,是向多个广播事件或推送值的唯一方法。 原文:http://reactivex.io/rxjs/manu... RxJS 是一个使用可观察量(observable)队列解决异步编程和基于事件编程的js库。他提供了一个核心的类型O...

    BlackHole1 评论0 收藏0
  • 通俗的方式理解RxJS

    摘要:到底是什么先上代码输出这里可以把想象成一个函数,这意味着你每次调用都会导致传入里的回调函数重新执行一次调用的方式为相当于。接收函数返回值的方式也从改为通过传入回调函数的方式获取。具体看代码运行结果如上的第一个回调函数里的结构是推荐的结构。 通俗的方式理解Rx.js 序言 今早看民工叔的文章的时候, 发现对Rxjs所知甚少, 于是去官方看了下教程, 整理出一些东西, 写成此文。Rxjs据...

    jzzlee 评论0 收藏0
  • Rxjs 核心概念

    摘要:仿宋可以把想像成一个可以发射事件的库。在中用来处理异步事件的核心概念包括代表了未来可能会产生的一系列的值或事件的集合回调函数的集合,它知道如何去处理上产生的值或者事件,当然也包括异常。 又一年要过去了,回顾2017,rxjs始终是我在项目里使用最频繁的库,在我看来,它是一个非常优秀的数据处理工具。年初的时候就计划写点什么,碍于目前公司的项目实在抽不出时间,这一拖就到了年底。临近新年,总...

    Youngdze 评论0 收藏0

发表评论

0条评论

walterrwu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<