Options
All
  • Public
  • Public/Protected
  • All
Menu

The promise will be resolved when the animation reaches its end, and rejected when terminated early. The context of callbacks attached to the promise will be the element, and the arguments will be the Animation object and a boolean jumpedToEnd which when true means the animation was stopped with gotoEnd, when undefined the animation completed naturally.

see

``

since

1.8

Type Parameters

  • TElement

Hierarchy

Index

Properties

duration: number

The duration specified in ms

see

``

since

1.8

elem: TElement

The element being animatied

see

``

since

1.8

opts: EffectsOptions<TElement>

The animation options

see

``

since

1.8

originalOpts: EffectsOptions<TElement>

The original options before being filtered

see

``

since

1.8

originalProps: PlainObject<any>

The original properties before being filtered

see

``

since

1.8

props: PlainObject<any>

The final value of each property animating

see

``

since

1.8

startTime: number

The numeric value of new Date() when the animation began

see

``

since

1.8

tweens: Tween<TElement>[]

The animations tweens.

see

``

since

1.8

Methods

  • 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<CallbackBase<JQuery.Animation<TElement>, undefined | boolean, never, never>>

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

    • Rest ...alwaysCallbacks: TypeOrArray<CallbackBase<JQuery.Animation<TElement>, undefined | boolean, never, never>>[]

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

    Returns JQuery.Animation<TElement>

  • catch<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(failFilter?: null | ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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>
  • 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 = never

    • AJF = never

    • ANF = never

    • BRF = never

    • BJF = never

    • BNF = never

    • CRF = never

    • CJF = never

    • CNF = never

    • RRF = never

    • RJF = never

    • RNF = never

    Parameters

    • Optional failFilter: null | ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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>

  • createTween(propName: string, finalValue: number): Tween<TElement>
  • see

    ``

    since

    1.8

    Parameters

    • propName: string
    • finalValue: number

    Returns Tween<TElement>

  • 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<CallbackBase<JQuery.Animation<TElement>, undefined | true, never, never>>

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

    • Rest ...doneCallbacks: TypeOrArray<CallbackBase<JQuery.Animation<TElement>, undefined | true, never, never>>[]

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

    Returns JQuery.Animation<TElement>

  • 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

    Returns JQuery.Animation<TElement>

  • 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: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>), failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => AJF | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF> | Thenable<AJF>), progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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, 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: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => AJF | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF> | Thenable<AJF>), progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>), failFilter: null, progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: null, failFilter: null, progressFilter?: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>), failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(doneFilter: null, failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>(doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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>
  • 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 = 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

    • doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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.

        • (t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]): ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>
        • Parameters

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

    • failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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.

    • progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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<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 = 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

    • doneFilter: null

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

    • failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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.

    • progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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<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 = 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

    • doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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.

        • (t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]): ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>
        • Parameters

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

    • failFilter: null

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

    • progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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<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 = 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.

    • Optional progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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>

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

    • doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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.

        • (t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]): ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>
        • Parameters

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

    • failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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.

    • 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 = 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: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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.

    • 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 = 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: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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.

        • (t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]): ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>
        • Parameters

          Returns ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<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>

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

    see

    ``

    since

    1.7

    Parameters

    • progressCallback: TypeOrArray<CallbackBase<JQuery.Animation<TElement>, number, number, never>>

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

    • Rest ...progressCallbacks: TypeOrArray<CallbackBase<JQuery.Animation<TElement>, number, number, never>>[]

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

    Returns JQuery.Animation<TElement>

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

    Type Parameters

    • TTarget extends object

    Parameters

    • target: TTarget

      Object onto which the promise methods have to be attached

    Returns JQuery.Animation<TElement> & TTarget

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

    Returns JQuery.Animation<TElement>

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

    see

    ``

    since

    1.7

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

  • Stops the animation early, optionally going to the end.

    see

    ``

    since

    1.8

    Parameters

    • gotoEnd: boolean

    Returns JQuery.Animation<TElement>

  • 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: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>), failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => ARF | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF> | Thenable<ARF>), progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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, 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: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => ARF | PromiseBase<ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF> | Thenable<ARF>), progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARP, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>), failFilter: null, progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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, AJP, ANP, BRP, BJP, BNP, CRP, CJP, CNP, RRP, RJP, RNP>(doneFilter: null, failFilter: null, progressFilter?: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND, ARF, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>), failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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, AJF, ANF, BRF, BJF, BNF, CRF, CJF, CNF, RRF, RJF, RNF>(doneFilter: null, failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND>(doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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>
  • 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 = 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

    • doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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.

        • (t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]): ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>
        • Parameters

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

    • failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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.

    • progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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<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 = 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

    • doneFilter: null

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

    • failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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.

    • progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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<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 = 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

    • doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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.

        • (t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]): ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>
        • Parameters

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

    • failFilter: null

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

    • progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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<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 = 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.

    • Optional progressFilter: ((t: JQuery.Animation<TElement>, u: number, v: number, ...s: never[]) => 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>

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

    • doneFilter: ((t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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.

        • (t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]): ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>
        • Parameters

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

    • failFilter: ((t: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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.

    • 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 = 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: JQuery.Animation<TElement>, u: false, v: never, ...s: never[]) => 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.

    • 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 = 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: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]) => 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.

        • (t: JQuery.Animation<TElement>, u: undefined | true, v: never, ...s: never[]): ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<ARD>
        • Parameters

          Returns ARD | PromiseBase<ARD, AJD, AND, BRD, BJD, BND, CRD, CJD, CND, RRD, RJD, RND> | Thenable<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>

Generated using TypeDoc