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 | }
|