Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Subscription

Hierarchy

  • Subscription

Implements

  • SubscriptionLike

Index

Constructors

  • new Subscription(initialTeardown?: (() => void)): Subscription
  • Parameters

    • Optional initialTeardown: (() => void)

      A function executed first as part of the finalization process that is kicked off when {@link #unsubscribe} is called.

        • (): void
        • Returns void

    Returns Subscription

Properties

_addParent: any

Adds a parent to this subscription so it can be removed from the parent if it unsubscribes on it's own.

NOTE: THIS ASSUMES THAT _hasParent HAS ALREADY BEEN CHECKED.

param parent

The parent subscription to add

_finalizers: any

The list of registered finalizers to execute upon unsubscription. Adding and removing from this list occurs in the {@link #add} and {@link #remove} methods.

_hasParent: any

Checks to see if a this subscription already has a particular parent. This will signal that this subscription has already been added to the parent in question.

param parent

the parent to check for

_parentage: any
_removeParent: any

Called on a child when it is removed via {@link #remove}.

param parent

The parent to remove

closed: boolean

A flag to indicate whether this Subscription has already been unsubscribed.

initialTeardown?: any
nocollapse

Methods

  • add(teardown: TeardownLogic): void
  • Adds a finalizer to this subscription, so that finalization will be unsubscribed/called when this subscription is unsubscribed. If this subscription is already {@link #closed}, because it has already been unsubscribed, then whatever finalizer is passed to it will automatically be executed (unless the finalizer itself is also a closed subscription).

    Closed Subscriptions cannot be added as finalizers 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 {@link Unsubscribable} objects that you wish to remove will need to be removed manually with {@link #remove}

    Parameters

    • teardown: TeardownLogic

      The finalization logic to add to this subscription.

    Returns void

  • remove(teardown: Subscription | Unsubscribable | (() => void)): void
  • Removes a finalizer from this subscription that was previously added with the {@link #add} method.

    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 finalizer 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 finalizer instances are removed to free up memory upon unsubscription.

    Parameters

    • teardown: Subscription | Unsubscribable | (() => void)

      The finalizer to remove from this subscription

    Returns void

  • 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.

    Returns void

Generated using TypeDoc