UNPKG

2.79 kBTypeScriptView Raw
1import { SubscriptionLike, TeardownLogic } from './types';
2/**
3 * Represents a disposable resource, such as the execution of an Observable. A
4 * Subscription has one important method, `unsubscribe`, that takes no argument
5 * and just disposes the resource held by the subscription.
6 *
7 * Additionally, subscriptions may be grouped together through the `add()`
8 * method, which will attach a child Subscription to the current Subscription.
9 * When a Subscription is unsubscribed, all its children (and its grandchildren)
10 * will be unsubscribed as well.
11 *
12 * @class Subscription
13 */
14export declare class Subscription implements SubscriptionLike {
15 /** @nocollapse */
16 static EMPTY: Subscription;
17 /**
18 * A flag to indicate whether this Subscription has already been unsubscribed.
19 * @type {boolean}
20 */
21 closed: boolean;
22 /** @internal */
23 protected _parentOrParents: Subscription | Subscription[];
24 /** @internal */
25 private _subscriptions;
26 /**
27 * @param {function(): void} [unsubscribe] A function describing how to
28 * perform the disposal of resources when the `unsubscribe` method is called.
29 */
30 constructor(unsubscribe?: () => void);
31 /**
32 * Disposes the resources held by the subscription. May, for instance, cancel
33 * an ongoing Observable execution or cancel any other type of work that
34 * started when the Subscription was created.
35 * @return {void}
36 */
37 unsubscribe(): void;
38 /**
39 * Adds a tear down to be called during the unsubscribe() of this
40 * Subscription. Can also be used to add a child subscription.
41 *
42 * If the tear down being added is a subscription that is already
43 * unsubscribed, is the same reference `add` is being called on, or is
44 * `Subscription.EMPTY`, it will not be added.
45 *
46 * If this subscription is already in an `closed` state, the passed
47 * tear down logic will be executed immediately.
48 *
49 * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.
50 *
51 * @param {TeardownLogic} teardown The additional logic to execute on
52 * teardown.
53 * @return {Subscription} Returns the Subscription used or created to be
54 * added to the inner subscriptions list. This Subscription can be used with
55 * `remove()` to remove the passed teardown logic from the inner subscriptions
56 * list.
57 */
58 add(teardown: TeardownLogic): Subscription;
59 /**
60 * Removes a Subscription from the internal list of subscriptions that will
61 * unsubscribe during the unsubscribe process of this Subscription.
62 * @param {Subscription} subscription The subscription to remove.
63 * @return {void}
64 */
65 remove(subscription: Subscription): void;
66}