Synchronus Function

by HYEONGJINKIM

JavaScript

function a() {
    var deferred = $.Deferred();
    setTimeout(function () {
        console.log("status in a:", deferred.state());
        //this should trigger calling a or not?
        deferred.resolve("from a");
    }, 500);
    console.log("a");
    return deferred.promise();
};

function b() {
    var deferred = $.Deferred();
    setTimeout(function () {
        console.log("status in b:", deferred.state());
        deferred.resolve("from b");
    }, 200);
    console.log("b");
    return deferred.promise();
}
//synchronous function
function c() {
    var deferred = $.Deferred();
    console.log("c");
    console.log("status in c:", deferred.state());
    deferred.resolve("from c");
    return deferred.promise();
}

function test() {
    var d = jQuery.Deferred(),
        p = d.promise();
    //instead of the loop doing the following has the same output
    p.then(a).then(b).then(c);
    d.resolve();
}
test();