67 lines
2.7 KiB
TypeScript
67 lines
2.7 KiB
TypeScript
import { SubscriptionLike, TeardownLogic } from './types';
|
|
/**
|
|
* Represents a disposable resource, such as the execution of an Observable. A
|
|
* Subscription has one important method, `unsubscribe`, that takes no argument
|
|
* and just disposes the resource held by the subscription.
|
|
*
|
|
* Additionally, subscriptions may be grouped together through the `add()`
|
|
* method, which will attach a child Subscription to the current Subscription.
|
|
* When a Subscription is unsubscribed, all its children (and its grandchildren)
|
|
* will be unsubscribed as well.
|
|
*
|
|
* @class Subscription
|
|
*/
|
|
export declare class Subscription implements SubscriptionLike {
|
|
/** @nocollapse */
|
|
static EMPTY: Subscription;
|
|
/**
|
|
* A flag to indicate whether this Subscription has already been unsubscribed.
|
|
* @type {boolean}
|
|
*/
|
|
closed: boolean;
|
|
/** @internal */
|
|
protected _parentOrParents: Subscription | Subscription[];
|
|
/** @internal */
|
|
private _subscriptions;
|
|
/**
|
|
* @param {function(): void} [unsubscribe] A function describing how to
|
|
* perform the disposal of resources when the `unsubscribe` method is called.
|
|
*/
|
|
constructor(unsubscribe?: () => void);
|
|
/**
|
|
* Disposes the resources held by the subscription. May, for instance, cancel
|
|
* an ongoing Observable execution or cancel any other type of work that
|
|
* started when the Subscription was created.
|
|
* @return {void}
|
|
*/
|
|
unsubscribe(): void;
|
|
/**
|
|
* Adds a tear down to be called during the unsubscribe() of this
|
|
* Subscription. Can also be used to add a child subscription.
|
|
*
|
|
* If the tear down being added is a subscription that is already
|
|
* unsubscribed, is the same reference `add` is being called on, or is
|
|
* `Subscription.EMPTY`, it will not be added.
|
|
*
|
|
* If this subscription is already in an `closed` state, the passed
|
|
* tear down logic will be executed immediately.
|
|
*
|
|
* When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.
|
|
*
|
|
* @param {TeardownLogic} teardown The additional logic to execute on
|
|
* teardown.
|
|
* @return {Subscription} Returns the Subscription used or created to be
|
|
* added to the inner subscriptions list. This Subscription can be used with
|
|
* `remove()` to remove the passed teardown logic from the inner subscriptions
|
|
* list.
|
|
*/
|
|
add(teardown: TeardownLogic): Subscription;
|
|
/**
|
|
* Removes a Subscription from the internal list of subscriptions that will
|
|
* unsubscribe during the unsubscribe process of this Subscription.
|
|
* @param {Subscription} subscription The subscription to remove.
|
|
* @return {void}
|
|
*/
|
|
remove(subscription: Subscription): void;
|
|
}
|