【发布时间】:2013-12-23 08:15:59
【问题描述】:
以下是无法按我想要的顺序运行的场景:
var masterData = {};
var tableNames = ['table1','table2','table3','table4','table5','table6'];
var pullSqlData = function(){
tableNames.forEach(function(value) {
if(storage.isEmpty(value)) {
$.getJSON('http://domain.com?r=appsync/read&id='+value+ "&callback=", function(data){
masterData[value] = data;
storage.set(value,data);
});
} else {
masterData[value] = storage.get(value);
}
});
};
$.when(pullSqlData()).done(function(){
console.log('all done');
});
四处搜索后,我知道如果我手动执行类似的操作,我可以继续工作
$.when(
$.getJSON('http://domain.com?r=appsync/read&id=table1&callback=', function(data){
masterData[value] = data;
storage.set(value,data);
}),
$.getJSON('http://domain.com?r=appsync/read&id=table2&callback=', function(data){
masterData[value] = data;
storage.set(value,data);
}),
//more calls
).done(function(){
console.log('all done');
});
但是我想知道是否有一种方法可以超越正确的方法
*storage 是一个 HTML5 localStorage jQuery 插件
【问题讨论】:
标签: jquery jquery-deferred .when