A promise that exploits a single, memory-safe upstream subscription to a single re-used Unpromise that persists for the VM lifetime of a Promise.

Calling unsubscribe() removes the subscription, eliminating all references to the SubscribedPromise.

interface SubscribedPromise<T> {
    [toStringTag]: string;
    unsubscribe: (() => void);
    catch<TResult>(onrejected?): Promise<T | TResult>;
    finally(onfinally?): Promise<T>;
    then<TResult1, TResult2>(onfulfilled?, onrejected?): Promise<TResult1 | TResult2>;
}

Type Parameters

  • T

Hierarchy

  • Promise<T>
    • SubscribedPromise

Properties

[toStringTag]: string
unsubscribe: (() => void)

Type declaration

    • (): void
    • Returns void

Methods

  • Attaches a callback for only the rejection of the Promise.

    Type Parameters

    • TResult = never

    Parameters

    • Optional onrejected: null | ((reason) => TResult | PromiseLike<TResult>)

      The callback to execute when the Promise is rejected.

    Returns Promise<T | TResult>

    A Promise for the completion of the callback.

  • Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The resolved value cannot be modified from the callback.

    Parameters

    • Optional onfinally: null | (() => void)

      The callback to execute when the Promise is settled (fulfilled or rejected).

    Returns Promise<T>

    A Promise for the completion of the callback.

  • Attaches callbacks for the resolution and/or rejection of the Promise.

    Type Parameters

    • TResult1 = T
    • TResult2 = never

    Parameters

    • Optional onfulfilled: null | ((value) => TResult1 | PromiseLike<TResult1>)

      The callback to execute when the Promise is resolved.

    • Optional onrejected: null | ((reason) => TResult2 | PromiseLike<TResult2>)

      The callback to execute when the Promise is rejected.

    Returns Promise<TResult1 | TResult2>

    A Promise for the completion of which ever callback is executed.