JSFiddle - React, Tailwind, and code Playground

JavaScript

function do1(){
    var d = $.Deferred();
    d.done(function() {
        // I want this to run 1st (but it runs 2nd)    
        alert(1)
    
    })
    setTimeout(function() {
       d.resolve();
    }, 3000) 
    return d.promise();
}

function do2(){
    var d = $.Deferred();
    d.done(function() {
        // I want this to run 2nd (but it runs 1st)    
        alert(2)
    
    })
    setTimeout(function() {
       d.resolve();
    }, 1000) 
    return d.promise();
}

$.when( do1(), do2() )
    .then(function(){
        console.log( 'I fire once both jquery deferred functions are done' );
    })
    .fail(function(){
        console.log( 'I fire if one or more fail.' );
    });