JSFiddle - React, Tailwind, and code Playground
JavaScript
function Proxy(promise) {
var _deferred = $.Deferred(),
_promise = _deferred.promise(),
_aborted;
promise
.done(function () {
!_aborted && _deferred.resolve.apply(_deferred, arguments);
})
.fail(function () {
!_aborted && _deferred.reject.apply(_deferred, arguments);
});
this.promise = function () { return _promise; };
this.abort = function () { _aborted = true; };
}
var deferred = $.Deferred(),
proxy = new Proxy(deferred.promise());
proxy.promise().done(function (result) {
console.log("Original deferred resolved with", result);
});
proxy.abort(); // Call this to prevent the above callback from firing
deferred.resolve(42);
deferred.resolve(43);