JSFiddle - React, Tailwind, and code Playground

JavaScript

// init app
    var app = {
        def: new $.Deferred()
    };

// Launch first bind
app.def.done(function () {
    console.log('first time done');
});

(function () {
    if( app.def.state() === 'pending' ) {
        console.log(app.def.state());
       setTimeout(arguments.callee.caller, 500);
    }
    else{
    console.log(app.def.state());
    }
})();

app.def.resolve();

// Launch second bind
app.def = new $.Deferred();

app.def.done(function () {
    console.log('second time done');
});

app.def.resolve();