JSFiddle - React, Tailwind, and code Playground

HTML

<label id='output'>RUNNING<br /><label>

JavaScript

function func_a(limit) {
        var i = 0;
        var defer = $.Deferred();
        var x = setInterval(function () {
            $('#output').append('A Running Function ' + i + '<br />');
            
            if (i == limit) {
                $('#output').append('A Done Function A:' + i + '<br /><br />');
                clearInterval(x);
                defer.resolve('B');
            }
            i++;
            
        }, 500);
        return defer;
    }
    
    function func_b(limit) {
        var c = 0;
        var defer = $.Deferred();
        var y = setInterval(function () {
            $('#output').append('B Running Function ' + c + '<br />');
            
            if (c == limit) {
                $('#output').append('B Done Function B:' + c + '<br /><br />');
                clearInterval(y);
                defer.resolve('A');
            }
            c++;
            
        }, 500);
        return defer;
    }
    
    func_a(3).then( func_b(5) ).then( func_a(2) );