| /** @license MIT License (c) copyright B Cavalier & J Hann */ |
| |
| /** |
| * cancelable.js |
| * @deprecated |
| * |
| * Decorator that makes a deferred "cancelable". It adds a cancel() method that |
| * will call a special cancel handler function and then reject the deferred. The |
| * cancel handler can be used to do resource cleanup, or anything else that should |
| * be done before any other rejection handlers are executed. |
| * |
| * Usage: |
| * |
| * var cancelableDeferred = cancelable(when.defer(), myCancelHandler); |
| * |
| * @author brian@hovercraftstudios.com |
| */ |
| |
| (function(define) { |
| define(function() { |
| |
| /** |
| * Makes deferred cancelable, adding a cancel() method. |
| * @deprecated |
| * |
| * @param deferred {Deferred} the {@link Deferred} to make cancelable |
| * @param canceler {Function} cancel handler function to execute when this deferred |
| * is canceled. This is guaranteed to run before all other rejection handlers. |
| * The canceler will NOT be executed if the deferred is rejected in the standard |
| * way, i.e. deferred.reject(). It ONLY executes if the deferred is canceled, |
| * i.e. deferred.cancel() |
| * |
| * @returns deferred, with an added cancel() method. |
| */ |
| return function(deferred, canceler) { |
| // Add a cancel method to the deferred to reject the delegate |
| // with the special canceled indicator. |
| deferred.cancel = function() { |
| try { |
| deferred.reject(canceler(deferred)); |
| } catch(e) { |
| deferred.reject(e); |
| } |
| |
| return deferred.promise; |
| }; |
| |
| return deferred; |
| }; |
| |
| }); |
| })(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(); }); |
| |
| |