JSFiddle - React, Tailwind, and code Playground

JavaScript

function foo(a) {
    bar(a).done(function () {
        console.log("done");
    }).fail(function () {
        console.log("fail");
    });
}

function bar(a) {
    if (a){
        return null;
    }
    
    return doAsync();
}

function doAsync() {
    var defer = $.Deferred();
    defer.resolve();
    return defer.promise();
}

foo(false); // fine
foo(true); // error