Subscription.d.ts 2.7 KB

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