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");
});