JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/q.js/0.9.6/q.js"></script>

JavaScript

function foo(val) {
    var deferred = Q.defer();
    if (val) {
        deferred.resolve("Foo true");
    } else {
        deferred.reject("Foo false");
    }

    return deferred.promise;
}

function bar() {
    var promise = foo(true);
    
    return promise.then(function(res) {
        throw new Error('true error!');
        deferred.resolve("Bar true");
    }, function(err) {
        throw new Error('false error!');
        deferred.reject("Bar false");
    });
}

bar()
.then(function(res) {
    console.log("Result",res);
}, function(err) {
    console.log("Error",err.message);
});