JSFiddle - React, Tailwind, and code Playground

JavaScript

function sayIt(ms, def) {
    setTimeout(function() {
        console.log('middle');
        def.resolve();
        return 10;
    }, ms);
}

function slowPromise() {

    var def = $.Deferred();

    var result = sayIt(2000, def);

    return def;
}

slowPromise().then(function() {
    console.log('end');
});