You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.7 KiB
70 lines
2.7 KiB
export interface AnonymousSubscription { |
|
unsubscribe(): void; |
|
} |
|
export declare type TeardownLogic = AnonymousSubscription | Function | void; |
|
export interface ISubscription extends AnonymousSubscription { |
|
unsubscribe(): void; |
|
readonly closed: boolean; |
|
} |
|
/** |
|
* 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 ISubscription { |
|
static EMPTY: Subscription; |
|
/** |
|
* A flag to indicate whether this Subscription has already been unsubscribed. |
|
* @type {boolean} |
|
*/ |
|
closed: boolean; |
|
protected _parent: Subscription; |
|
protected _parents: Subscription[]; |
|
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. |
|
* |
|
* 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. |
|
* |
|
* @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; |
|
private _addParent(parent); |
|
}
|
|
|