JSFiddle - React, Tailwind, and code Playground

by docluv

JavaScript

var viewData = [
    "foo",
    "bar"
    ];


function swapView(viewId) {

        console.log("swapping to " + viewId);
    
    var dfd = $.Deferred();

    if (!viewId) {

        console.log("no viewid");
        
        swapView("homeView")
            .done(function(ret){
                dfd.resolve(ret);
                console.log("finished loading the homeView");})
            .fail(function(ret){
                dfd.reject(ret);
                console.log("failed loading the homeView");});

        return dfd.promise();
    }


    if (viewId === "homeView") {
        dfd.resolve();
    } else {

        loadNewView(0).done(function(ret) {
            console.log("loading View 0");
            dfd.resolve(ret);
        }).fail(function(ret) {
                console.log("failed loading View 0");
            dfd.reject(ret);
        });

        loadNewView(5).done(function(ret) {
            console.log("loading View 5");
            dfd.resolve(ret);
        }).fail(function(ret) {
                console.log("failed loading View 5");
            dfd.reject(ret);
        });

    }

    return dfd.promise();
};

function loadNewView(viewId) {

    console.log("loading new view " + viewId);

    var dfd = $.Deferred();

    if (!viewData[viewId]) {
        console.log("no view data");
        dfd.reject("no view data");
    } else {
        console.log("view data " + viewData[viewId]);
        dfd.resolve("view data");
    }

    return dfd.promise();

};


swapView("testMe").done(function() {
    console.log("swapped the view testMe");
}).fail(function() {
    console.log("did not swap the view testMe");
});


swapView("homeView").done(function() {
    console.log("swapped the view to homeView");
}).fail(function() {
    console.log("did not swap the view homeView");
});

swapView().done(function() {
    console.log("swapped the view to no view");
}).fail(function() {
    console.log("did not swap to no view");
});