JSFiddle - React, Tailwind, and code Playground

HTML

Please open a console

JavaScript

listeners = function (def, name) {
    def.progress(function () {
        console.warn(name + ' progress', arguments);
    })
    def.done(function () {
        console.warn(name + ' done', arguments);
    })
    def.fail(function () {
        console.warn(name + ' fail', arguments);
    })
}

var a = $.Deferred(),
    b = $.Deferred(),
    up = $.when(a, b);

listeners(a, 'a');
listeners(up, 'UP');


a.notify('a notify1');
b.notify('b notify1')
a.resolve('a.resolve1');
b.resolve('b.resolve');
//this will not work bc a is resolved already
a.reject('a.fail1')