bf8ccca52d5d46fe81657f771959fe693cc72848
[dotfiles/.git] / Subscription.d.ts
1 import { 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  */
14 export 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 }