* @since 1.22
*/
postWithToken: function ( tokenType, params, ajaxOptions ) {
- var api = this;
+ var api = this,
+ abortable;
- return api.getToken( tokenType, params.assert ).then( function ( token ) {
+ return ( abortable = api.getToken( tokenType, params.assert ) ).then( function ( token ) {
params.token = token;
- return api.post( params, ajaxOptions ).then(
+ return ( abortable = api.post( params, ajaxOptions ) ).then(
// If no error, return to caller as-is
null,
// Error handler
api.badToken( tokenType );
// Try again, once
params.token = undefined;
- return api.getToken( tokenType, params.assert ).then( function ( token ) {
+ return ( abortable = api.getToken( tokenType, params.assert ) ).then( function ( token ) {
params.token = token;
- return api.post( params, ajaxOptions );
+ return ( abortable = api.post( params, ajaxOptions ) ).promise();
} );
}
return this;
}
);
- } );
+ } ).promise( { abort: function () {
+ abortable.abort();
+ } } );
},
/**