WordPress.org

Make WordPress Core

Ticket #32628: 32628.diff

File 32628.diff, 2.2 KB (added by westonruter, 7 years ago)

Source: https://github.com/xwp/wordpress-develop/commit/09c0d2489e961c2691a6d2748645a8a6ac673c58

  • src/wp-includes/js/wp-util.js

    diff --git src/wp-includes/js/wp-util.js src/wp-includes/js/wp-util.js
    index 1985b35..c5e4531 100644
    window.wp = window.wp || {}; 
    5050                 *
    5151                 * @param  {string} action The slug of the action to fire in WordPress.
    5252                 * @param  {object} data   The data to populate $_POST with.
    53                  * @return {$.promise}     A jQuery promise that represents the request.
     53                 * @return {$.promise}     A jQuery promise that represents the request,
     54                 *                            with an added abort() method.
    5455                 */
    5556                post: function( action, data ) {
    5657                        return wp.ajax.send({
    window.wp = window.wp || {}; 
    6566                 *
    6667                 * @param  {string} action  The slug of the action to fire in WordPress.
    6768                 * @param  {object} options The options passed to jQuery.ajax.
    68                  * @return {$.promise}      A jQuery promise that represents the request.
     69                 * @return {$.promise}      A jQuery promise that represents the request,
     70                 *                            with an added abort() method.
    6971                 */
    7072                send: function( action, options ) {
     73                        var promise, deferred;
    7174                        if ( _.isObject( action ) ) {
    7275                                options = action;
    7376                        } else {
    window.wp = window.wp || {}; 
    8184                                context: this
    8285                        });
    8386
    84                         return $.Deferred( function( deferred ) {
     87                        deferred = $.Deferred( function( deferred ) {
    8588                                // Transfer success/error callbacks.
    8689                                if ( options.success )
    8790                                        deferred.done( options.success );
    window.wp = window.wp || {}; 
    9295                                delete options.error;
    9396
    9497                                // Use with PHP's wp_send_json_success() and wp_send_json_error()
    95                                 $.ajax( options ).done( function( response ) {
     98                                deferred.jqxhr = $.ajax( options ).done( function( response ) {
    9699                                        // Treat a response of `1` as successful for backwards
    97100                                        // compatibility with existing handlers.
    98101                                        if ( response === '1' || response === 1 )
    window.wp = window.wp || {}; 
    105108                                }).fail( function() {
    106109                                        deferred.rejectWith( this, arguments );
    107110                                });
    108                         }).promise();
     111                        });
     112
     113                        promise = deferred.promise();
     114                        promise.abort = function() {
     115                                deferred.jqxhr.abort();
     116                                return this;
     117                        };
     118
     119                        return promise;
    109120                }
    110121        };
    111122