JSFiddle - React, Tailwind, and code Playground

JavaScript

function log(s) { $('body').append(s + '<br/>'); }

function createPromise() {
    var deferred = $.Deferred();

    setTimeout(function() { deferred.notify(); }, 100);
    setTimeout(function() { deferred.resolve(); }, 200);
    return deferred.promise();
}

createPromise()
    .done(function() {
            log("done");
        })
    .fail(function() {
            log("fail");
    })
    .progress(function(){
        log("progress");
        this.reject();  //"other code" interferes with deferred's internals
    });