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