首页 > Web开发 > 详细

RxJS——订阅(Subscription)

时间:2019-08-30 09:01:42      阅读:135      评论:0      收藏:0      [点我收藏+]

订阅(Subscription)

什么是订阅?订阅是一个对象,它表示一个处理完就释放(disposable)的资源,是 Observable 的一个执行程序。订阅有一个很重要的方法,unsubscribe,它是无参的,只是处理订阅的资源。在上个版本的 RxJS,Subscription 又叫 “Disposable”。

import { interval } from 'rxjs';

const observable = interval(1000);
const subscription = observable.subscribe(x => console.log(x));
// 然后:
// 这个取消通过观察者订阅正在开始执行的 Observable
subscription.unsubcribe();

一个订阅实质上仅仅有一个 unsubscribe() 函数释放资源或取消 Observable 的执行。

订阅还是放在一起,以至于可以调用一个 unsubscribe() 函数释放多个订阅。你也可以通过 “adding” 把其中一个订阅添加到其他的订阅中:

import { interval } from 'rxjs';

const observable1 = interval(400);
const observable2 = interval(300);

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

subscription.add(childSubscription);

setTimeout(() => {
    //取消订阅 subscription 以及 childSubscription
    subscription.unsubscribe();
}, 1000);

当运行的时候,我们会看到如下结果:

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

订阅(Subscription)也有一个 remove(otherSubscription) 方法,是为了从它的子订阅中移除。

RxJS——订阅(Subscription)

原文:https://www.cnblogs.com/ms27946/p/rxjs-subscription.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!