Subscription
class
stable
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.
class Subscription implements SubscriptionLike { static EMPTY: (() => {...}) constructor(initialTeardown?: () => void) closed: false unsubscribe(): void add(teardown: TeardownLogic): void remove(teardown: Subscription | Unsubscribable | (() => void)): void }
Subclasses
-
Subscriber
Description
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.
Static Properties
Property | Type | Description |
---|---|---|
EMPTY
| (() => {
const empty = new Subscription();
empty.closed = true;
return empty;
})() |
Constructor
constructor(initialTeardown?: () => void)
Parameters
initialTeardown | Optional. Default is A function executed first as part of the teardown process that is kicked off when unsubscribe is called. |
Properties
Property | Type | Description |
---|---|---|
closed
| false | A flag to indicate whether this Subscription has already been unsubscribed. |
Methods
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.
Parameters
There are no parameters.
Returns
void
:
add(teardown: TeardownLogic): void
Adds a teardown to this subscription, so that teardown will be unsubscribed/called when this subscription is unsubscribed. If this subscription is already closed, because it has already been unsubscribed, then whatever teardown is passed to it will automatically be executed (unless the teardown itself is also a closed subscription).
Parameters
teardown | The teardown logic to add to this subscription. |
Returns
void
Closed Subscriptions cannot be added as teardowns to any subscription. Adding a closed subscription to a any subscription will result in no operation. (A noop).
Adding a subscription to itself, or adding null
or undefined
will not perform any operation at all. (A noop).
Subscription
instances that are added to this instance will automatically remove themselves if they are unsubscribed. Functions and Unsubscribable
objects that you wish to remove will need to be removed manually with remove
remove(teardown: Subscription | Unsubscribable | (() => void)): void
Removes a teardown from this subscription that was previously added with the add method.
Parameters
teardown | The teardown to remove from this subscription |
Returns
void
Note that Subscription
instances, when unsubscribed, will automatically remove themselves from every other Subscription
they have been added to. This means that using the remove
method is not a common thing and should be used thoughtfully.
If you add the same teardown instance of a function or an unsubscribable object to a Subcription
instance more than once, you will need to call remove
the same number of times to remove all instances.
All teardown instances are removed to free up memory upon unsubscription.
© 2015–2021 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/index/class/Subscription