Interface JQueryDeferred<T, TJ, TN, T, TJ, TN>

Type parameters

  • T

  • TJ

  • TN

  • T

  • TJ

  • TN

Hierarchy

Index

Type aliases

Callback

Callback: function

Type declaration

    • (...args: T[]): void
    • Parameters

      • Rest ...args: T[]

      Returns void

CallbackBase

CallbackBase: function

Type declaration

    • (t: T, u: U, v: V, ...r: R[]): void
    • Parameters

      • t: T
      • u: U
      • v: V
      • Rest ...r: R[]

      Returns void

Methods

always

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

    see

    ``

    since

    1.6

    example

    ​ ````Since the jQuery.get() method returns a jqXHR object, which is derived from a Deferred object, we can attach a callback for both success and error using the deferred.always() method.

    $.get( "test.php" ).always(function() {
    alert( "$.get completed with success or error callback arguments" );
    });

    Parameters

    • alwaysCallback: TypeOrArray<Callback<T | TJ>>

      A function, or array of functions, that is called when the Deferred is resolved or rejected.

    • Rest ...alwaysCallbacks: Array<TypeOrArray<Callback<T | TJ>>>

      Optional additional functions, or arrays of functions, that are called when the Deferred is resolved or rejected.

    Returns this

catch

  • catch<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(failFilter?: function | null): PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
  • Add handlers to be called when the Deferred object is rejected.

    see

    ``

    since

    3.0

    example

    ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can rejection handlers using the .catch method.

    $.get( "test.php" )
    .then( function() {
    alert( "$.get succeeded" );
    } )
    .catch( function() {
    alert( "$.get failed!" );
    } );

    Type parameters

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    Parameters

    • Optional failFilter: function | null

      A function that is called when the Deferred is rejected.

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

done

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

    see

    ``

    since

    1.5

    example

    ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach a success callback using the .done() method.

    $.get( "test.php" ).done(function() {
    alert( "$.get succeeded" );
    });
    example

    ​ ````Resolve a Deferred object when the user clicks a button, triggering a number of callback functions:

    <!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>

    Parameters

    • doneCallback: TypeOrArray<Callback<T>>

      A function, or array of functions, that are called when the Deferred is resolved.

    • Rest ...doneCallbacks: Array<TypeOrArray<Callback<T>>>

      Optional additional functions, or arrays of functions, that are called when the Deferred is resolved.

    Returns this

fail

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

    see

    ``

    since

    1.5

    example

    ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred, you can attach a success and failure callback using the deferred.done() and deferred.fail() methods.

    $.get( "test.php" )
    .done(function() {
    alert( "$.get succeeded" );
    })
    .fail(function() {
    alert( "$.get failed!" );
    });

    Parameters

    • failCallback: TypeOrArray<Callback<TJ>>

      A function, or array of functions, that are called when the Deferred is rejected.

    • Rest ...failCallbacks: Array<TypeOrArray<Callback<TJ>>>

      Optional additional functions, or arrays of functions, that are called when the Deferred is rejected.

    Returns this

notify

  • notify(...args: TN[]): this
  • Call the progressCallbacks on a Deferred object with the given args.

    see

    ``

    since

    1.7

    Parameters

    • Rest ...args: TN[]

      Optional arguments that are passed to the progressCallbacks.

    Returns this

notifyWith

  • notifyWith(context: object, args?: ArrayLike<TN>): this
  • Call the progressCallbacks on a Deferred object with the given context and args.

    see

    ``

    since

    1.7

    Parameters

    • context: object

      Context passed to the progressCallbacks as the this object.

    • Optional args: ArrayLike<TN>

      An optional array of arguments that are passed to the progressCallbacks.

    Returns this

pipe

  • pipe<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF, ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: function, failFilter: function, progressFilter: function): 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, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF, ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: null, failFilter: function, progressFilter: function): 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, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: function, failFilter: null, progressFilter: function): 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, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: null, failFilter: null, progressFilter?: function): PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
  • pipe<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(doneFilter: function, failFilter: function, 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, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(doneFilter: null, failFilter: function, progressFilter?: null): PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
  • pipe<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>(doneFilter: function, failFilter?: null, progressFilter?: null): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
  • Utility method to filter and/or chain Deferreds.

    see

    ``

    since

    1.6

    since

    1.7

    deprecated

    ​ Deprecated since 1.8. Use ``.

    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.

    example

    ​ ````Filter resolve value:

    var defer = $.Deferred(),
    filtered = defer.pipe(function( value ) {
    return value * 2;
    });
    ​
    defer.resolve( 5 );
    filtered.done(function( value ) {
    alert( "Value is ( 2*5 = ) 10: " + value );
    });
    example

    ​ ````Filter reject value:

    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 );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARD

    • AJD

    • AND

    • BRD

    • BJD

    • BND

    • CRD

    • CJD

    • CND

    • RRD

    • RJD

    • RND

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    • ARP

    • AJP

    • ANP

    • BRP

    • BJP

    • BNP

    • CRP

    • CJP

    • CNP

    • RRP

    • RJP

    • RNP

    Parameters

    • doneFilter: function

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

        • (...t: T[]): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD> | ARD
        • Parameters

          • Rest ...t: T[]

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

    • failFilter: function

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

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

          • Rest ...t: TJ[]

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

    • progressFilter: function

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

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

          • Rest ...t: TN[]

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

    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>

  • Utility method to filter and/or chain Deferreds.

    see

    ``

    since

    1.6

    since

    1.7

    deprecated

    ​ Deprecated since 1.8. Use ``.

    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.

    example

    ​ ````Filter reject value:

    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 );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    • ARP

    • AJP

    • ANP

    • BRP

    • BJP

    • BNP

    • CRP

    • CJP

    • CNP

    • RRP

    • RJP

    • RNP

    Parameters

    • doneFilter: null

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

    • failFilter: function

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

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

          • Rest ...t: TJ[]

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

    • progressFilter: function

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

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

          • Rest ...t: TN[]

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

    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>

  • Utility method to filter and/or chain Deferreds.

    see

    ``

    since

    1.6

    since

    1.7

    deprecated

    ​ Deprecated since 1.8. Use ``.

    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.

    example

    ​ ````Filter resolve value:

    var defer = $.Deferred(),
    filtered = defer.pipe(function( value ) {
    return value * 2;
    });
    ​
    defer.resolve( 5 );
    filtered.done(function( value ) {
    alert( "Value is ( 2*5 = ) 10: " + value );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARD

    • AJD

    • AND

    • BRD

    • BJD

    • BND

    • CRD

    • CJD

    • CND

    • RRD

    • RJD

    • RND

    • ARP

    • AJP

    • ANP

    • BRP

    • BJP

    • BNP

    • CRP

    • CJP

    • CNP

    • RRP

    • RJP

    • RNP

    Parameters

    • doneFilter: function

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

        • (...t: T[]): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD> | ARD
        • Parameters

          • Rest ...t: T[]

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

    • failFilter: null

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

    • progressFilter: function

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

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

          • Rest ...t: TN[]

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

    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>

  • Utility method to filter and/or chain Deferreds.

    see

    ``

    since

    1.6

    since

    1.7

    deprecated

    ​ Deprecated since 1.8. Use ``.

    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.

    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARP

    • AJP

    • ANP

    • BRP

    • BJP

    • BNP

    • CRP

    • CJP

    • CNP

    • RRP

    • RJP

    • RNP

    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.

    • Optional progressFilter: function

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

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

          • Rest ...t: TN[]

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

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

  • Utility method to filter and/or chain Deferreds.

    see

    ``

    since

    1.6

    since

    1.7

    deprecated

    ​ Deprecated since 1.8. Use ``.

    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.

    example

    ​ ````Filter resolve value:

    var defer = $.Deferred(),
    filtered = defer.pipe(function( value ) {
    return value * 2;
    });
    ​
    defer.resolve( 5 );
    filtered.done(function( value ) {
    alert( "Value is ( 2*5 = ) 10: " + value );
    });
    example

    ​ ````Filter reject value:

    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 );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARD

    • AJD

    • AND

    • BRD

    • BJD

    • BND

    • CRD

    • CJD

    • CND

    • RRD

    • RJD

    • RND

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    Parameters

    • doneFilter: function

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

        • (...t: T[]): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD> | ARD
        • Parameters

          • Rest ...t: T[]

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

    • failFilter: function

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

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

          • Rest ...t: TJ[]

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

    • Optional progressFilter: null

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

    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>

  • Utility method to filter and/or chain Deferreds.

    see

    ``

    since

    1.6

    since

    1.7

    deprecated

    ​ Deprecated since 1.8. Use ``.

    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.

    example

    ​ ````Filter reject value:

    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 );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    Parameters

    • doneFilter: null

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

    • failFilter: function

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

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

          • Rest ...t: TJ[]

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

    • Optional progressFilter: 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>

  • Utility method to filter and/or chain Deferreds.

    see

    ``

    since

    1.6

    since

    1.7

    deprecated

    ​ Deprecated since 1.8. Use ``.

    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.

    example

    ​ ````Filter resolve value:

    var defer = $.Deferred(),
    filtered = defer.pipe(function( value ) {
    return value * 2;
    });
    ​
    defer.resolve( 5 );
    filtered.done(function( value ) {
    alert( "Value is ( 2*5 = ) 10: " + value );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARD

    • AJD

    • AND

    • BRD

    • BJD

    • BND

    • CRD

    • CJD

    • CND

    • RRD

    • RJD

    • RND

    Parameters

    • doneFilter: function

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

        • (...t: T[]): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD> | ARD
        • Parameters

          • Rest ...t: T[]

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

    • Optional failFilter: null

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

    • Optional progressFilter: 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>

progress

  • Add handlers to be called when the Deferred object generates progress notifications.

    see

    ``

    since

    1.7

    Parameters

    • progressCallback: TypeOrArray<Callback<TN>>

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

    • Rest ...progressCallbacks: Array<TypeOrArray<Callback<TN>>>

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

    Returns this

promise

  • promise<TTarget>(target: TTarget): Promise<T, TJ, TN> & TTarget
  • promise(): Promise<T, TJ, TN>
  • Return a Deferred's Promise object.

    see

    ``

    since

    1.5

    example

    ​ ````Use the target argument to promote an existing object to a Promise:

    // 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"

    Type parameters

    • TTarget: object

    Parameters

    • target: TTarget

      Object onto which the promise methods have to be attached

    Returns Promise<T, TJ, TN> & TTarget

  • Return a Deferred's Promise object.

    see

    ``

    since

    1.5

    example

    ​ ````Create a Deferred and set two timer-based functions to either resolve or reject the Deferred after a random interval. Whichever one fires first "wins" and will call one of the callbacks. The second timeout has no effect since the Deferred is already complete (in a resolved or rejected state) from the first timeout action. Also set a timer-based progress notification function, and call a progress handler that adds "working..." to the document body.

    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 );
    }
    );

    Returns Promise<T, TJ, TN>

reject

  • reject(...args: TJ[]): this
  • Reject a Deferred object and call any failCallbacks with the given args.

    see

    ``

    since

    1.5

    Parameters

    • Rest ...args: TJ[]

      Optional arguments that are passed to the failCallbacks.

    Returns this

rejectWith

  • rejectWith(context: object, args?: ArrayLike<TJ>): this
  • Reject a Deferred object and call any failCallbacks with the given context and args.

    see

    ``

    since

    1.5

    Parameters

    • context: object

      Context passed to the failCallbacks as the this object.

    • Optional args: ArrayLike<TJ>

      An optional array of arguments that are passed to the failCallbacks.

    Returns this

resolve

  • resolve(...args: T[]): this
  • Resolve a Deferred object and call any doneCallbacks with the given args.

    see

    ``

    since

    1.5

    Parameters

    • Rest ...args: T[]

      Optional arguments that are passed to the doneCallbacks.

    Returns this

resolveWith

  • resolveWith(context: object, args?: ArrayLike<T>): this
  • Resolve a Deferred object and call any doneCallbacks with the given context and args.

    see

    ``

    since

    1.5

    Parameters

    • context: object

      Context passed to the doneCallbacks as the this object.

    • Optional args: ArrayLike<T>

      An optional array of arguments that are passed to the doneCallbacks.

    Returns this

state

  • state(): "pending" | "resolved" | "rejected"
  • Determine the current state of a Deferred object.

    see

    ``

    since

    1.7

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

then

  • then<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF, ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: function, failFilter: function, progressFilter: function): 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, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF, ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: null, failFilter: function, progressFilter: function): 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, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: function, failFilter: null, progressFilter: function): 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, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: null, failFilter: null, progressFilter?: function): PromiseBase<ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>
  • then<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(doneFilter: function, failFilter: function, 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, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(doneFilter: null, failFilter: function, progressFilter?: null): PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>
  • then<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>(doneFilter: function, failFilter?: null, progressFilter?: null): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>
  • Add handlers to be called when the Deferred object is resolved, rejected, or still in progress.

    see

    ``

    since

    1.8

    example

    ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach handlers using the .then method.

    $.get( "test.php" ).then(
    function() {
    alert( "$.get succeeded" );
    }, function() {
    alert( "$.get failed!" );
    }
    );
    example

    ​ ````Filter the resolve value:

    <!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>
    example

    ​ ````Filter reject value:

    var defer = $.Deferred(),
    filtered = defer.then( null, function( value ) {
    return value * 3;
    });
    ​
    defer.reject( 6 );
    filtered.fail(function( value ) {
    alert( "Value is ( 3*6 = ) 18: " + value );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARD

    • AJD

    • AND

    • BRD

    • BJD

    • BND

    • CRD

    • CJD

    • CND

    • RRD

    • RJD

    • RND

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    • ARP

    • AJP

    • ANP

    • BRP

    • BJP

    • BNP

    • CRP

    • CJP

    • CNP

    • RRP

    • RJP

    • RNP

    Parameters

    • doneFilter: function

      A function that is called when the Deferred is resolved.

        • (...t: T[]): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD> | ARD
        • Parameters

          • Rest ...t: T[]

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

    • failFilter: function

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

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

          • Rest ...t: TJ[]

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

    • progressFilter: function

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

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

          • Rest ...t: TN[]

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

    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>

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

    see

    ``

    since

    1.8

    example

    ​ ````Filter reject value:

    var defer = $.Deferred(),
    filtered = defer.then( null, function( value ) {
    return value * 3;
    });
    ​
    defer.reject( 6 );
    filtered.fail(function( value ) {
    alert( "Value is ( 3*6 = ) 18: " + value );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    • ARP

    • AJP

    • ANP

    • BRP

    • BJP

    • BNP

    • CRP

    • CJP

    • CNP

    • RRP

    • RJP

    • RNP

    Parameters

    • doneFilter: null

      A function that is called when the Deferred is resolved.

    • failFilter: function

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

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

          • Rest ...t: TJ[]

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

    • progressFilter: function

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

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

          • Rest ...t: TN[]

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

    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>

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

    see

    ``

    since

    1.8

    example

    ​ ````Filter the resolve value:

    <!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>
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARD

    • AJD

    • AND

    • BRD

    • BJD

    • BND

    • CRD

    • CJD

    • CND

    • RRD

    • RJD

    • RND

    • ARP

    • AJP

    • ANP

    • BRP

    • BJP

    • BNP

    • CRP

    • CJP

    • CNP

    • RRP

    • RJP

    • RNP

    Parameters

    • doneFilter: function

      A function that is called when the Deferred is resolved.

        • (...t: T[]): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD> | ARD
        • Parameters

          • Rest ...t: T[]

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

    • failFilter: null

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

    • progressFilter: function

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

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

          • Rest ...t: TN[]

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

    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>

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

    see

    ``

    since

    1.8

    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARP

    • AJP

    • ANP

    • BRP

    • BJP

    • BNP

    • CRP

    • CJP

    • CNP

    • RRP

    • RJP

    • RNP

    Parameters

    • doneFilter: null

      A function that is called when the Deferred is resolved.

    • failFilter: null

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

    • Optional progressFilter: function

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

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

          • Rest ...t: TN[]

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

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

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

    see

    ``

    since

    1.8

    example

    ​ ````Since the jQuery.get method returns a jqXHR object, which is derived from a Deferred object, we can attach handlers using the .then method.

    $.get( "test.php" ).then(
    function() {
    alert( "$.get succeeded" );
    }, function() {
    alert( "$.get failed!" );
    }
    );
    example

    ​ ````Filter the resolve value:

    <!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>
    example

    ​ ````Filter reject value:

    var defer = $.Deferred(),
    filtered = defer.then( null, function( value ) {
    return value * 3;
    });
    ​
    defer.reject( 6 );
    filtered.fail(function( value ) {
    alert( "Value is ( 3*6 = ) 18: " + value );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARD

    • AJD

    • AND

    • BRD

    • BJD

    • BND

    • CRD

    • CJD

    • CND

    • RRD

    • RJD

    • RND

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    Parameters

    • doneFilter: function

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

        • (...t: T[]): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD> | ARD
        • Parameters

          • Rest ...t: T[]

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

    • failFilter: function

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

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

          • Rest ...t: TJ[]

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

    • Optional progressFilter: null

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

    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>

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

    see

    ``

    since

    1.8

    example

    ​ ````Filter reject value:

    var defer = $.Deferred(),
    filtered = defer.then( null, function( value ) {
    return value * 3;
    });
    ​
    defer.reject( 6 );
    filtered.fail(function( value ) {
    alert( "Value is ( 3*6 = ) 18: " + value );
    });
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARF

    • AJF

    • ANF

    • BRF

    • BJF

    • BNF

    • CRF

    • CJF

    • CNF

    • RRF

    • RJF

    • RNF

    Parameters

    • doneFilter: null

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

    • failFilter: function

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

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

          • Rest ...t: TJ[]

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

    • Optional progressFilter: 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>

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

    see

    ``

    since

    1.8

    example

    ​ ````Filter the resolve value:

    <!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>
    example

    ​ ````Chain tasks:

    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
    });

    Type parameters

    • ARD

    • AJD

    • AND

    • BRD

    • BJD

    • BND

    • CRD

    • CJD

    • CND

    • RRD

    • RJD

    • RND

    Parameters

    • doneFilter: function

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

        • (...t: T[]): PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD> | ARD
        • Parameters

          • Rest ...t: T[]

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

    • Optional failFilter: null

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

    • Optional progressFilter: 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>