dojo/Deferred chaining mechanism not respecting async call
http://stackoverflow.com/questions/13401204/dojo-deferred-chaining-mechanism-not-respecting-async-call
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css">
JavaScript
require([
"dojo/parser",
"dojo/Deferred"
], function(parser, Deferred) {
console.log("here");
var deferred;
var pseudoStore = {
getJsonData: function() {
/*
return xhr(this.handlerUrl, {
handleAs: "json",
method: "POST",
data: {
action: "getJsonData"
}
})
*/
// I'm simulating the xhr request
deferred = new Deferred();
return deferred;
}
};
var editOptionsDialog_fetchData = function(id, fieldName) {
// do the logic to determine which store you wanted.
var store = pseudoStore;
var deferred1 = store.getJsonData();
var deferred2 = new Deferred();
deferred1.then(function(data) {
store.data = data.items;
deferred2.resolve(store);
});
return deferred2;
}
var openEditor = function(id, fieldName) {
editOptionsDialog_fetchData(id, fieldName)
.then(function(store){
console.log("done!");
});
console.log("leaving openEditor!");
}
openEditor();
deferred.resolve({items: []}); // simulate the xhr request returning
});