trilium
    Preparing search index...

    Interface Promise<TR, TJ, TN>

    This object provides a subset of the methods of the Deferred object (then, done, fail, always, pipe, progress, state and promise) to prevent users from changing the state of the Deferred.

    <a href="https://api.jquery.com/Types/#Promise">https://api.jquery.com/Types/#Promise</a>

    interface Promise<TR, TJ = any, TN = any> {
        always(
            alwaysCallback: TypeOrArray<
                CallbackBase<TR | TJ, TR | TJ, TR | TJ, TR | TJ>,
            >,
            ...alwaysCallbacks: TypeOrArray<
                CallbackBase<TR | TJ, TR | TJ, TR | TJ, TR | TJ>,
            >[],
        ): this;
        catch<
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
        >(
            failFilter?:
                | null
                | (
                    (
                        t: TJ,
                        u: TJ,
                        v: TJ,
                        ...s: TJ[],
                    ) =>
                        | ARF
                        | PromiseBase<
                            ARF,
                            AJF,
                            ANF,
                            BRF,
                            BJF,
                            BNF,
                            CRF,
                            CJF,
                            CNF,
                            RRF,
                            RJF,
                            RNF,
                        >
                        | Thenable<ARF>
                ),
        ): PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>;
        done(
            doneCallback: TypeOrArray<CallbackBase<TR, TR, TR, TR>>,
            ...doneCallbacks: TypeOrArray<CallbackBase<TR, TR, TR, TR>>[],
        ): this;
        fail(
            failCallback: TypeOrArray<CallbackBase<TJ, TJ, TJ, TJ>>,
            ...failCallbacks: TypeOrArray<CallbackBase<TJ, TJ, TJ, TJ>>[],
        ): this;
        pipe<
            ARD = never,
            AJD = never,
            AND = never,
            BRD = never,
            BJD = never,
            BND = never,
            CRD = never,
            CJD = never,
            CND = never,
            RRD = never,
            RJD = never,
            RND = never,
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
            ARP = never,
            AJP = never,
            ANP = never,
            BRP = never,
            BJP = never,
            BNP = never,
            CRP = never,
            CJP = never,
            CNP = never,
            RRP = never,
            RJP = never,
            RNP = never,
        >(
            doneFilter: (
                t: TR,
                u: TR,
                v: TR,
                ...s: TR[],
            ) =>
                | ARD
                | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
                | Thenable<ARD>,
            failFilter: (
                t: TJ,
                u: TJ,
                v: TJ,
                ...s: TJ[],
            ) =>
                | AJF
                | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                | Thenable<AJF>,
            progressFilter: (
                t: TN,
                u: TN,
                v: TN,
                ...s: TN[],
            ) =>
                | ANP
                | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
                | Thenable<ANP>,
        ): PromiseBase<
            ARD
            | ARF
            | ARP,
            AJD | AJF | AJP,
            AND | ANF | ANP,
            BRD | BRF | BRP,
            BJD | BJF | BJP,
            BND | BNF | BNP,
            CRD | CRF | CRP,
            CJD | CJF | CJP,
            CND | CNF | CNP,
            RRD | RRF | RRP,
            RJD | RJF | RJP,
            RND | RNF | RNP,
        >;
        pipe<
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
            ARP = never,
            AJP = never,
            ANP = never,
            BRP = never,
            BJP = never,
            BNP = never,
            CRP = never,
            CJP = never,
            CNP = never,
            RRP = never,
            RJP = never,
            RNP = never,
        >(
            doneFilter: null,
            failFilter: (
                t: TJ,
                u: TJ,
                v: TJ,
                ...s: TJ[],
            ) =>
                | AJF
                | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                | Thenable<AJF>,
            progressFilter: (
                t: TN,
                u: TN,
                v: TN,
                ...s: TN[],
            ) =>
                | ANP
                | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
                | Thenable<ANP>,
        ): PromiseBase<
            ARF
            | ARP,
            AJF | AJP,
            ANF | ANP,
            BRF | BRP,
            BJF | BJP,
            BNF | BNP,
            CRF | CRP,
            CJF | CJP,
            CNF | CNP,
            RRF | RRP,
            RJF | RJP,
            RNF | RNP,
        >;
        pipe<
            ARD = never,
            AJD = never,
            AND = never,
            BRD = never,
            BJD = never,
            BND = never,
            CRD = never,
            CJD = never,
            CND = never,
            RRD = never,
            RJD = never,
            RND = never,
            ARP = never,
            AJP = never,
            ANP = never,
            BRP = never,
            BJP = never,
            BNP = never,
            CRP = never,
            CJP = never,
            CNP = never,
            RRP = never,
            RJP = never,
            RNP = never,
        >(
            doneFilter: (
                t: TR,
                u: TR,
                v: TR,
                ...s: TR[],
            ) =>
                | ARD
                | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
                | Thenable<ARD>,
            failFilter: null,
            progressFilter: (
                t: TN,
                u: TN,
                v: TN,
                ...s: TN[],
            ) =>
                | ANP
                | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
                | Thenable<ANP>,
        ): PromiseBase<
            ARD
            | ARP,
            AJD | AJP,
            AND | ANP,
            BRD | BRP,
            BJD | BJP,
            BND | BNP,
            CRD | CRP,
            CJD | CJP,
            CND | CNP,
            RRD | RRP,
            RJD | RJP,
            RND | RNP,
        >;
        pipe<
            ARP = never,
            AJP = never,
            ANP = never,
            BRP = never,
            BJP = never,
            BNP = never,
            CRP = never,
            CJP = never,
            CNP = never,
            RRP = never,
            RJP = never,
            RNP = never,
        >(
            doneFilter: null,
            failFilter: null,
            progressFilter?: (
                t: TN,
                u: TN,
                v: TN,
                ...s: TN[],
            ) =>
                | ANP
                | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
                | Thenable<ANP>,
        ): PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>;
        pipe<
            ARD = never,
            AJD = never,
            AND = never,
            BRD = never,
            BJD = never,
            BND = never,
            CRD = never,
            CJD = never,
            CND = never,
            RRD = never,
            RJD = never,
            RND = never,
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
        >(
            doneFilter: (
                t: TR,
                u: TR,
                v: TR,
                ...s: TR[],
            ) =>
                | ARD
                | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
                | Thenable<ARD>,
            failFilter: (
                t: TJ,
                u: TJ,
                v: TJ,
                ...s: TJ[],
            ) =>
                | AJF
                | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                | Thenable<AJF>,
            progressFilter?: null,
        ): PromiseBase<
            ARD
            | ARF,
            AJD | AJF,
            AND | ANF,
            BRD | BRF,
            BJD | BJF,
            BND | BNF,
            CRD | CRF,
            CJD | CJF,
            CND | CNF,
            RRD | RRF,
            RJD | RJF,
            RND | RNF,
        >;
        pipe<
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
        >(
            doneFilter: null,
            failFilter: (
                t: TJ,
                u: TJ,
                v: TJ,
                ...s: TJ[],
            ) =>
                | AJF
                | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                | Thenable<AJF>,
            progressFilter?: null,
        ): PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>;
        pipe<
            ARD = never,
            AJD = never,
            AND = never,
            BRD = never,
            BJD = never,
            BND = never,
            CRD = never,
            CJD = never,
            CND = never,
            RRD = never,
            RJD = never,
            RND = never,
        >(
            doneFilter: (
                t: TR,
                u: TR,
                v: TR,
                ...s: TR[],
            ) =>
                | ARD
                | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
                | Thenable<ARD>,
            failFilter?: null,
            progressFilter?: null,
        ): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>;
        progress(
            progressCallback: TypeOrArray<CallbackBase<TN, TN, TN, TN>>,
            ...progressCallbacks: TypeOrArray<CallbackBase<TN, TN, TN, TN>>[],
        ): this;
        promise<TTarget extends object>(
            target: TTarget,
        ): Promise<TR, TJ, TN> & TTarget;
        promise(): this;
        state(): "pending" | "resolved" | "rejected";
        then<
            ARD = never,
            AJD = never,
            AND = never,
            BRD = never,
            BJD = never,
            BND = never,
            CRD = never,
            CJD = never,
            CND = never,
            RRD = never,
            RJD = never,
            RND = never,
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
            ARP = never,
            AJP = never,
            ANP = never,
            BRP = never,
            BJP = never,
            BNP = never,
            CRP = never,
            CJP = never,
            CNP = never,
            RRP = never,
            RJP = never,
            RNP = never,
        >(
            doneFilter: (
                t: TR,
                u: TR,
                v: TR,
                ...s: TR[],
            ) =>
                | ARD
                | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
                | Thenable<ARD>,
            failFilter: (
                t: TJ,
                u: TJ,
                v: TJ,
                ...s: TJ[],
            ) =>
                | ARF
                | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                | Thenable<ARF>,
            progressFilter: (
                t: TN,
                u: TN,
                v: TN,
                ...s: TN[],
            ) =>
                | ANP
                | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
                | Thenable<ANP>,
        ): PromiseBase<
            ARD
            | ARF
            | ARP,
            AJD | AJF | AJP,
            AND | ANF | ANP,
            BRD | BRF | BRP,
            BJD | BJF | BJP,
            BND | BNF | BNP,
            CRD | CRF | CRP,
            CJD | CJF | CJP,
            CND | CNF | CNP,
            RRD | RRF | RRP,
            RJD | RJF | RJP,
            RND | RNF | RNP,
        >;
        then<
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
            ARP = never,
            AJP = never,
            ANP = never,
            BRP = never,
            BJP = never,
            BNP = never,
            CRP = never,
            CJP = never,
            CNP = never,
            RRP = never,
            RJP = never,
            RNP = never,
        >(
            doneFilter: null,
            failFilter: (
                t: TJ,
                u: TJ,
                v: TJ,
                ...s: TJ[],
            ) =>
                | ARF
                | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                | Thenable<ARF>,
            progressFilter: (
                t: TN,
                u: TN,
                v: TN,
                ...s: TN[],
            ) =>
                | ANP
                | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
                | Thenable<ANP>,
        ): PromiseBase<
            ARF
            | ARP,
            AJF | AJP,
            ANF | ANP,
            BRF | BRP,
            BJF | BJP,
            BNF | BNP,
            CRF | CRP,
            CJF | CJP,
            CNF | CNP,
            RRF | RRP,
            RJF | RJP,
            RNF | RNP,
        >;
        then<
            ARD = never,
            AJD = never,
            AND = never,
            BRD = never,
            BJD = never,
            BND = never,
            CRD = never,
            CJD = never,
            CND = never,
            RRD = never,
            RJD = never,
            RND = never,
            ARP = never,
            AJP = never,
            ANP = never,
            BRP = never,
            BJP = never,
            BNP = never,
            CRP = never,
            CJP = never,
            CNP = never,
            RRP = never,
            RJP = never,
            RNP = never,
        >(
            doneFilter: (
                t: TR,
                u: TR,
                v: TR,
                ...s: TR[],
            ) =>
                | ARD
                | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
                | Thenable<ARD>,
            failFilter: null,
            progressFilter: (
                t: TN,
                u: TN,
                v: TN,
                ...s: TN[],
            ) =>
                | ANP
                | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
                | Thenable<ANP>,
        ): PromiseBase<
            ARD
            | ARP,
            AJD | AJP,
            AND | ANP,
            BRD | BRP,
            BJD | BJP,
            BND | BNP,
            CRD | CRP,
            CJD | CJP,
            CND | CNP,
            RRD | RRP,
            RJD | RJP,
            RND | RNP,
        >;
        then<
            ARP = never,
            AJP = never,
            ANP = never,
            BRP = never,
            BJP = never,
            BNP = never,
            CRP = never,
            CJP = never,
            CNP = never,
            RRP = never,
            RJP = never,
            RNP = never,
        >(
            doneFilter: null,
            failFilter: null,
            progressFilter?: (
                t: TN,
                u: TN,
                v: TN,
                ...s: TN[],
            ) =>
                | ANP
                | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
                | Thenable<ANP>,
        ): PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>;
        then<
            ARD = never,
            AJD = never,
            AND = never,
            BRD = never,
            BJD = never,
            BND = never,
            CRD = never,
            CJD = never,
            CND = never,
            RRD = never,
            RJD = never,
            RND = never,
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
        >(
            doneFilter: (
                t: TR,
                u: TR,
                v: TR,
                ...s: TR[],
            ) =>
                | ARD
                | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
                | Thenable<ARD>,
            failFilter: (
                t: TJ,
                u: TJ,
                v: TJ,
                ...s: TJ[],
            ) =>
                | ARF
                | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                | Thenable<ARF>,
            progressFilter?: null,
        ): PromiseBase<
            ARD
            | ARF,
            AJD | AJF,
            AND | ANF,
            BRD | BRF,
            BJD | BJF,
            BND | BNF,
            CRD | CRF,
            CJD | CJF,
            CND | CNF,
            RRD | RRF,
            RJD | RJF,
            RND | RNF,
        >;
        then<
            ARF = never,
            AJF = never,
            ANF = never,
            BRF = never,
            BJF = never,
            BNF = never,
            CRF = never,
            CJF = never,
            CNF = never,
            RRF = never,
            RJF = never,
            RNF = never,
        >(
            doneFilter: null,
            failFilter: (
                t: TJ,
                u: TJ,
                v: TJ,
                ...s: TJ[],
            ) =>
                | ARF
                | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                | Thenable<ARF>,
            progressFilter?: null,
        ): PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>;
        then<
            ARD = never,
            AJD = never,
            AND = never,
            BRD = never,
            BJD = never,
            BND = never,
            CRD = never,
            CJD = never,
            CND = never,
            RRD = never,
            RJD = never,
            RND = never,
        >(
            doneFilter: (
                t: TR,
                u: TR,
                v: TR,
                ...s: TR[],
            ) =>
                | ARD
                | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
                | Thenable<ARD>,
            failFilter?: null,
            progressFilter?: null,
        ): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>;
    }

    Type Parameters

    • TR
    • TJ = any
    • TN = any

    Hierarchy (View Summary)

    Index

    Methods

    • Add handlers to be called when the Deferred object is either resolved or rejected.

      Parameters

      Returns this

      <a href="https://api.jquery.com/deferred.always/">https://api.jquery.com/deferred.always/</a>

      1.6

      $.get( "test.php" ).always(function() {
      alert( "$.get completed with success or error callback arguments" );
      });
    • Add handlers to be called when the Deferred object is rejected.

      Type Parameters

      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never

      Parameters

      • OptionalfailFilter:
            | null
            | (
                (
                    t: TJ,
                    u: TJ,
                    v: TJ,
                    ...s: TJ[],
                ) =>
                    | ARF
                    | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
                    | Thenable<ARF>
            )

        A function that is called when the Deferred is rejected.

      Returns PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>

      <a href="https://api.jquery.com/deferred.catch/">https://api.jquery.com/deferred.catch/</a>

      3.0

      $.get( "test.php" )
      .then( function() {
      alert( "$.get succeeded" );
      } )
      .catch( function() {
      alert( "$.get failed!" );
      } );
    • Add handlers to be called when the Deferred object is resolved.

      Parameters

      Returns this

      <a href="https://api.jquery.com/deferred.done/">https://api.jquery.com/deferred.done/</a>

      1.5

      <!doctype html>
      <html lang="en">
      <head>
      <meta charset="utf-8">
      <title>deferred.done demo</title>
      <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
      </head>
      <body>

      <button>Go</button>
      <p>Ready...</p>

      <script>
      // 3 functions to call when the Deferred object is resolved
      function fn1() {
      $( "p" ).append( " 1 " );
      }
      function fn2() {
      $( "p" ).append( " 2 " );
      }
      function fn3( n ) {
      $( "p" ).append( n + " 3 " + n );
      }

      // Create a deferred object
      var dfd = $.Deferred();

      // Add handlers to be called when dfd is resolved
      dfd
      // .done() can take any number of functions or arrays of functions
      .done( [ fn1, fn2 ], fn3, [ fn2, fn1 ] )
      // We can chain done methods, too
      .done(function( n ) {
      $( "p" ).append( n + " we're done." );
      });

      // Resolve the Deferred object when the button is clicked
      $( "button" ).on( "click", function() {
      dfd.resolve( "and" );
      });
      </script>

      </body>
      </html>
    • Add handlers to be called when the Deferred object is rejected.

      Parameters

      Returns this

      <a href="https://api.jquery.com/deferred.fail/">https://api.jquery.com/deferred.fail/</a>

      1.5

      $.get( "test.php" )
      .done(function() {
      alert( "$.get succeeded" );
      })
      .fail(function() {
      alert( "$.get failed!" );
      });
    • Utility method to filter and/or chain Deferreds.

      Type Parameters

      • ARD = never
      • AJD = never
      • AND = never
      • BRD = never
      • BJD = never
      • BND = never
      • CRD = never
      • CJD = never
      • CND = never
      • RRD = never
      • RJD = never
      • RND = never
      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never
      • ARP = never
      • AJP = never
      • ANP = never
      • BRP = never
      • BJP = never
      • BNP = never
      • CRP = never
      • CJP = never
      • CNP = never
      • RRP = never
      • RJP = never
      • RNP = never

      Parameters

      Returns PromiseBase<
          ARD
          | ARF
          | ARP,
          AJD | AJF | AJP,
          AND | ANF | ANP,
          BRD | BRF | BRP,
          BJD | BJF | BJP,
          BND | BNF | BNP,
          CRD | CRF | CRP,
          CJD | CJF | CJP,
          CND | CNF | CNP,
          RRD | RRF | RRP,
          RJD | RJF | RJP,
          RND | RNF | RNP,
      >

      <a href="https://api.jquery.com/deferred.pipe/">https://api.jquery.com/deferred.pipe/</a>

      1.6

      1.7

      ​ Deprecated since 1.8. Use <a href="#then" class="tsd-kind-method">then</a>.

      Cause: The .pipe() method on a jQuery.Deferred object was deprecated as of jQuery 1.8, when the .then() method was changed to perform the same function.

      Solution: In most cases it is sufficient to change all occurrences of .pipe() to .then(). Ensure that you aren't relying on context/state propagation (e.g., using this) or synchronous callback invocation, which were dropped from .then() for Promises/A+ interoperability as of jQuery 3.0.

      var defer = $.Deferred(),
      filtered = defer.pipe( null, function( value ) {
      return value * 3;
      });

      defer.reject( 6 );
      filtered.fail(function( value ) {
      alert( "Value is ( 3*6 = ) 18: " + value );
      });
      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.pipe(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Utility method to filter and/or chain Deferreds.

      Type Parameters

      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never
      • ARP = never
      • AJP = never
      • ANP = never
      • BRP = never
      • BJP = never
      • BNP = never
      • CRP = never
      • CJP = never
      • CNP = never
      • RRP = never
      • RJP = never
      • RNP = never

      Parameters

      Returns PromiseBase<
          ARF
          | ARP,
          AJF | AJP,
          ANF | ANP,
          BRF | BRP,
          BJF | BJP,
          BNF | BNP,
          CRF | CRP,
          CJF | CJP,
          CNF | CNP,
          RRF | RRP,
          RJF | RJP,
          RNF | RNP,
      >

      <a href="https://api.jquery.com/deferred.pipe/">https://api.jquery.com/deferred.pipe/</a>

      1.6

      1.7

      ​ Deprecated since 1.8. Use <a href="#then" class="tsd-kind-method">then</a>.

      Cause: The .pipe() method on a jQuery.Deferred object was deprecated as of jQuery 1.8, when the .then() method was changed to perform the same function.

      Solution: In most cases it is sufficient to change all occurrences of .pipe() to .then(). Ensure that you aren't relying on context/state propagation (e.g., using this) or synchronous callback invocation, which were dropped from .then() for Promises/A+ interoperability as of jQuery 3.0.

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.pipe(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Utility method to filter and/or chain Deferreds.

      Type Parameters

      • ARD = never
      • AJD = never
      • AND = never
      • BRD = never
      • BJD = never
      • BND = never
      • CRD = never
      • CJD = never
      • CND = never
      • RRD = never
      • RJD = never
      • RND = never
      • ARP = never
      • AJP = never
      • ANP = never
      • BRP = never
      • BJP = never
      • BNP = never
      • CRP = never
      • CJP = never
      • CNP = never
      • RRP = never
      • RJP = never
      • RNP = never

      Parameters

      Returns PromiseBase<
          ARD
          | ARP,
          AJD | AJP,
          AND | ANP,
          BRD | BRP,
          BJD | BJP,
          BND | BNP,
          CRD | CRP,
          CJD | CJP,
          CND | CNP,
          RRD | RRP,
          RJD | RJP,
          RND | RNP,
      >

      <a href="https://api.jquery.com/deferred.pipe/">https://api.jquery.com/deferred.pipe/</a>

      1.6

      1.7

      ​ Deprecated since 1.8. Use <a href="#then" class="tsd-kind-method">then</a>.

      Cause: The .pipe() method on a jQuery.Deferred object was deprecated as of jQuery 1.8, when the .then() method was changed to perform the same function.

      Solution: In most cases it is sufficient to change all occurrences of .pipe() to .then(). Ensure that you aren't relying on context/state propagation (e.g., using this) or synchronous callback invocation, which were dropped from .then() for Promises/A+ interoperability as of jQuery 3.0.

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.pipe(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Utility method to filter and/or chain Deferreds.

      Type Parameters

      • ARP = never
      • AJP = never
      • ANP = never
      • BRP = never
      • BJP = never
      • BNP = never
      • CRP = never
      • CJP = never
      • CNP = never
      • RRP = never
      • RJP = never
      • RNP = never

      Parameters

      • doneFilter: null

        An optional function that is called when the Deferred is resolved.

      • failFilter: null

        An optional function that is called when the Deferred is rejected.

      • OptionalprogressFilter: (
            t: TN,
            u: TN,
            v: TN,
            ...s: TN[],
        ) =>
            | ANP
            | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
            | Thenable<ANP>

        An optional function that is called when progress notifications are sent to the Deferred.

      Returns PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>

      <a href="https://api.jquery.com/deferred.pipe/">https://api.jquery.com/deferred.pipe/</a>

      1.6

      1.7

      ​ Deprecated since 1.8. Use <a href="#then" class="tsd-kind-method">then</a>.

      Cause: The .pipe() method on a jQuery.Deferred object was deprecated as of jQuery 1.8, when the .then() method was changed to perform the same function.

      Solution: In most cases it is sufficient to change all occurrences of .pipe() to .then(). Ensure that you aren't relying on context/state propagation (e.g., using this) or synchronous callback invocation, which were dropped from .then() for Promises/A+ interoperability as of jQuery 3.0.

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.pipe(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Utility method to filter and/or chain Deferreds.

      Type Parameters

      • ARD = never
      • AJD = never
      • AND = never
      • BRD = never
      • BJD = never
      • BND = never
      • CRD = never
      • CJD = never
      • CND = never
      • RRD = never
      • RJD = never
      • RND = never
      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never

      Parameters

      Returns PromiseBase<
          ARD
          | ARF,
          AJD | AJF,
          AND | ANF,
          BRD | BRF,
          BJD | BJF,
          BND | BNF,
          CRD | CRF,
          CJD | CJF,
          CND | CNF,
          RRD | RRF,
          RJD | RJF,
          RND | RNF,
      >

      <a href="https://api.jquery.com/deferred.pipe/">https://api.jquery.com/deferred.pipe/</a>

      1.6

      1.7

      ​ Deprecated since 1.8. Use <a href="#then" class="tsd-kind-method">then</a>.

      Cause: The .pipe() method on a jQuery.Deferred object was deprecated as of jQuery 1.8, when the .then() method was changed to perform the same function.

      Solution: In most cases it is sufficient to change all occurrences of .pipe() to .then(). Ensure that you aren't relying on context/state propagation (e.g., using this) or synchronous callback invocation, which were dropped from .then() for Promises/A+ interoperability as of jQuery 3.0.

      var defer = $.Deferred(),
      filtered = defer.pipe( null, function( value ) {
      return value * 3;
      });

      defer.reject( 6 );
      filtered.fail(function( value ) {
      alert( "Value is ( 3*6 = ) 18: " + value );
      });
      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.pipe(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Utility method to filter and/or chain Deferreds.

      Type Parameters

      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never

      Parameters

      • doneFilter: null

        An optional function that is called when the Deferred is resolved.

      • failFilter: (
            t: TJ,
            u: TJ,
            v: TJ,
            ...s: TJ[],
        ) =>
            | AJF
            | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
            | Thenable<AJF>

        An optional function that is called when the Deferred is rejected.

      • OptionalprogressFilter: null

        An optional function that is called when progress notifications are sent to the Deferred.

      Returns PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>

      <a href="https://api.jquery.com/deferred.pipe/">https://api.jquery.com/deferred.pipe/</a>

      1.6

      1.7

      ​ Deprecated since 1.8. Use <a href="#then" class="tsd-kind-method">then</a>.

      Cause: The .pipe() method on a jQuery.Deferred object was deprecated as of jQuery 1.8, when the .then() method was changed to perform the same function.

      Solution: In most cases it is sufficient to change all occurrences of .pipe() to .then(). Ensure that you aren't relying on context/state propagation (e.g., using this) or synchronous callback invocation, which were dropped from .then() for Promises/A+ interoperability as of jQuery 3.0.

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.pipe(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Utility method to filter and/or chain Deferreds.

      Type Parameters

      • ARD = never
      • AJD = never
      • AND = never
      • BRD = never
      • BJD = never
      • BND = never
      • CRD = never
      • CJD = never
      • CND = never
      • RRD = never
      • RJD = never
      • RND = never

      Parameters

      • doneFilter: (
            t: TR,
            u: TR,
            v: TR,
            ...s: TR[],
        ) =>
            | ARD
            | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
            | Thenable<ARD>

        An optional function that is called when the Deferred is resolved.

      • OptionalfailFilter: null

        An optional function that is called when the Deferred is rejected.

      • OptionalprogressFilter: null

        An optional function that is called when progress notifications are sent to the Deferred.

      Returns PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>

      <a href="https://api.jquery.com/deferred.pipe/">https://api.jquery.com/deferred.pipe/</a>

      1.6

      1.7

      ​ Deprecated since 1.8. Use <a href="#then" class="tsd-kind-method">then</a>.

      Cause: The .pipe() method on a jQuery.Deferred object was deprecated as of jQuery 1.8, when the .then() method was changed to perform the same function.

      Solution: In most cases it is sufficient to change all occurrences of .pipe() to .then(). Ensure that you aren't relying on context/state propagation (e.g., using this) or synchronous callback invocation, which were dropped from .then() for Promises/A+ interoperability as of jQuery 3.0.

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.pipe(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Add handlers to be called when the Deferred object generates progress notifications.

      Parameters

      • progressCallback: TypeOrArray<CallbackBase<TN, TN, TN, TN>>

        A function, or array of functions, to be called when the Deferred generates progress notifications.

      • ...progressCallbacks: TypeOrArray<CallbackBase<TN, TN, TN, TN>>[]

        Optional additional functions, or arrays of functions, to be called when the Deferred generates progress notifications.

      Returns this

      <a href="https://api.jquery.com/deferred.progress/">https://api.jquery.com/deferred.progress/</a>

      1.7

    • Return a Deferred's Promise object.

      Type Parameters

      • TTarget extends object

      Parameters

      • target: TTarget

        Object onto which the promise methods have to be attached

      Returns Promise<TR, TJ, TN> & TTarget

      <a href="https://api.jquery.com/deferred.promise/">https://api.jquery.com/deferred.promise/</a>

      1.5

      function asyncEvent() {
      var dfd = jQuery.Deferred();

      // Resolve after a random interval
      setTimeout(function() {
      dfd.resolve( "hurray" );
      }, Math.floor( 400 + Math.random() * 2000 ) );

      // Reject after a random interval
      setTimeout(function() {
      dfd.reject( "sorry" );
      }, Math.floor( 400 + Math.random() * 2000 ) );

      // Show a "working..." message every half-second
      setTimeout(function working() {
      if ( dfd.state() === "pending" ) {
      dfd.notify( "working... " );
      setTimeout( working, 500 );
      }
      }, 1 );

      // Return the Promise so caller can't change the Deferred
      return dfd.promise();
      }

      // Attach a done, fail, and progress handler for the asyncEvent
      $.when( asyncEvent() ).then(
      function( status ) {
      alert( status + ", things are going well" );
      },
      function( status ) {
      alert( status + ", you fail this time" );
      },
      function( status ) {
      $( "body" ).append( status );
      }
      );
    • Return a Deferred's Promise object.

      Returns this

      <a href="https://api.jquery.com/deferred.promise/">https://api.jquery.com/deferred.promise/</a>

      1.5

      // Existing object
      var obj = {
      hello: function( name ) {
      alert( "Hello " + name );
      }
      },
      // Create a Deferred
      defer = $.Deferred();

      // Set object as a promise
      defer.promise( obj );

      // Resolve the deferred
      defer.resolve( "John" );

      // Use the object as a Promise
      obj.done(function( name ) {
      obj.hello( name ); // Will alert "Hello John"
      }).hello( "Karl" ); // Will alert "Hello Karl"
    • Determine the current state of a Deferred object.

      Returns "pending" | "resolved" | "rejected"

      <a href="https://api.jquery.com/deferred.state/">https://api.jquery.com/deferred.state/</a>

      1.7

    • Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.

      Type Parameters

      • ARD = never
      • AJD = never
      • AND = never
      • BRD = never
      • BJD = never
      • BND = never
      • CRD = never
      • CJD = never
      • CND = never
      • RRD = never
      • RJD = never
      • RND = never
      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never
      • ARP = never
      • AJP = never
      • ANP = never
      • BRP = never
      • BJP = never
      • BNP = never
      • CRP = never
      • CJP = never
      • CNP = never
      • RRP = never
      • RJP = never
      • RNP = never

      Parameters

      Returns PromiseBase<
          ARD
          | ARF
          | ARP,
          AJD | AJF | AJP,
          AND | ANF | ANP,
          BRD | BRF | BRP,
          BJD | BJF | BJP,
          BND | BNF | BNP,
          CRD | CRF | CRP,
          CJD | CJF | CJP,
          CND | CNF | CNP,
          RRD | RRF | RRP,
          RJD | RJF | RJP,
          RND | RNF | RNP,
      >

      <a href="https://api.jquery.com/deferred.then/">https://api.jquery.com/deferred.then/</a>

      1.8

      <!doctype html>
      <html lang="en">
      <head>
      <meta charset="utf-8">
      <title>deferred.then demo</title>
      <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
      </head>
      <body>

      <button>Filter Resolve</button>
      <p></p>

      <script>
      var filterResolve = function() {
      var defer = $.Deferred(),
      filtered = defer.then(function( value ) {
      return value * 2;
      });

      defer.resolve( 5 );
      filtered.done(function( value ) {
      $( "p" ).html( "Value is ( 2*5 = ) 10: " + value );
      });
      };

      $( "button" ).on( "click", filterResolve );
      </script>

      </body>
      </html>
      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.then(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.

      Type Parameters

      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never
      • ARP = never
      • AJP = never
      • ANP = never
      • BRP = never
      • BJP = never
      • BNP = never
      • CRP = never
      • CJP = never
      • CNP = never
      • RRP = never
      • RJP = never
      • RNP = never

      Parameters

      Returns PromiseBase<
          ARF
          | ARP,
          AJF | AJP,
          ANF | ANP,
          BRF | BRP,
          BJF | BJP,
          BNF | BNP,
          CRF | CRP,
          CJF | CJP,
          CNF | CNP,
          RRF | RRP,
          RJF | RJP,
          RNF | RNP,
      >

      <a href="https://api.jquery.com/deferred.then/">https://api.jquery.com/deferred.then/</a>

      1.8

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.then(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.

      Type Parameters

      • ARD = never
      • AJD = never
      • AND = never
      • BRD = never
      • BJD = never
      • BND = never
      • CRD = never
      • CJD = never
      • CND = never
      • RRD = never
      • RJD = never
      • RND = never
      • ARP = never
      • AJP = never
      • ANP = never
      • BRP = never
      • BJP = never
      • BNP = never
      • CRP = never
      • CJP = never
      • CNP = never
      • RRP = never
      • RJP = never
      • RNP = never

      Parameters

      Returns PromiseBase<
          ARD
          | ARP,
          AJD | AJP,
          AND | ANP,
          BRD | BRP,
          BJD | BJP,
          BND | BNP,
          CRD | CRP,
          CJD | CJP,
          CND | CNP,
          RRD | RRP,
          RJD | RJP,
          RND | RNP,
      >

      <a href="https://api.jquery.com/deferred.then/">https://api.jquery.com/deferred.then/</a>

      1.8

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.then(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.

      Type Parameters

      • ARP = never
      • AJP = never
      • ANP = never
      • BRP = never
      • BJP = never
      • BNP = never
      • CRP = never
      • CJP = never
      • CNP = never
      • RRP = never
      • RJP = never
      • RNP = never

      Parameters

      • doneFilter: null

        An optional function that is called when the Deferred is resolved.

      • failFilter: null

        An optional function that is called when the Deferred is rejected.

      • OptionalprogressFilter: (
            t: TN,
            u: TN,
            v: TN,
            ...s: TN[],
        ) =>
            | ANP
            | PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
            | Thenable<ANP>

        An optional function that is called when progress notifications are sent to the Deferred.

      Returns PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>

      <a href="https://api.jquery.com/deferred.then/">https://api.jquery.com/deferred.then/</a>

      1.8

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.then(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.

      Type Parameters

      • ARD = never
      • AJD = never
      • AND = never
      • BRD = never
      • BJD = never
      • BND = never
      • CRD = never
      • CJD = never
      • CND = never
      • RRD = never
      • RJD = never
      • RND = never
      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never

      Parameters

      Returns PromiseBase<
          ARD
          | ARF,
          AJD | AJF,
          AND | ANF,
          BRD | BRF,
          BJD | BJF,
          BND | BNF,
          CRD | CRF,
          CJD | CJF,
          CND | CNF,
          RRD | RRF,
          RJD | RJF,
          RND | RNF,
      >

      <a href="https://api.jquery.com/deferred.then/">https://api.jquery.com/deferred.then/</a>

      1.8

      <!doctype html>
      <html lang="en">
      <head>
      <meta charset="utf-8">
      <title>deferred.then demo</title>
      <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
      </head>
      <body>

      <button>Filter Resolve</button>
      <p></p>

      <script>
      var filterResolve = function() {
      var defer = $.Deferred(),
      filtered = defer.then(function( value ) {
      return value * 2;
      });

      defer.resolve( 5 );
      filtered.done(function( value ) {
      $( "p" ).html( "Value is ( 2*5 = ) 10: " + value );
      });
      };

      $( "button" ).on( "click", filterResolve );
      </script>

      </body>
      </html>
      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.then(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.

      Type Parameters

      • ARF = never
      • AJF = never
      • ANF = never
      • BRF = never
      • BJF = never
      • BNF = never
      • CRF = never
      • CJF = never
      • CNF = never
      • RRF = never
      • RJF = never
      • RNF = never

      Parameters

      • doneFilter: null

        An optional function that is called when the Deferred is resolved.

      • failFilter: (
            t: TJ,
            u: TJ,
            v: TJ,
            ...s: TJ[],
        ) =>
            | ARF
            | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
            | Thenable<ARF>

        An optional function that is called when the Deferred is rejected.

      • OptionalprogressFilter: null

        An optional function that is called when progress notifications are sent to the Deferred.

      Returns PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>

      <a href="https://api.jquery.com/deferred.then/">https://api.jquery.com/deferred.then/</a>

      1.8

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.then(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });
    • Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.

      Type Parameters

      • ARD = never
      • AJD = never
      • AND = never
      • BRD = never
      • BJD = never
      • BND = never
      • CRD = never
      • CJD = never
      • CND = never
      • RRD = never
      • RJD = never
      • RND = never

      Parameters

      • doneFilter: (
            t: TR,
            u: TR,
            v: TR,
            ...s: TR[],
        ) =>
            | ARD
            | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
            | Thenable<ARD>

        An optional function that is called when the Deferred is resolved.

      • OptionalfailFilter: null

        An optional function that is called when the Deferred is rejected.

      • OptionalprogressFilter: null

        An optional function that is called when progress notifications are sent to the Deferred.

      Returns PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>

      <a href="https://api.jquery.com/deferred.then/">https://api.jquery.com/deferred.then/</a>

      1.8

      var request = $.ajax( url, { dataType: "json" } ),
      chained = request.then(function( data ) {
      return $.ajax( url2, { data: { user: data.userId } } );
      });

      chained.done(function( data ) {
      // data retrieved from url2 as provided by the first request
      });