我有一个jquery方法:
$.when(
function() {
console.log("1st Func!");
},
function() {
console.log("2nd Func!");
}
).done(function() {
console.log("Done Func!");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我希望前两个方法调用并完成,最后运行done方法。我期待在控制台中:
1st Func!
2nd Func!
Done Func!
但只有调用的done方法和控制台类似:Done Func!
问题出在哪里?
更新
我从评论中得到当应该是一个承诺时的功能。 在实际样本中,我有:
var getAndSetFromAPI = function(keyName, callback){
if (localStorage.getItem(keyName) === null){
$.AjaxCall(.., .., callback(data));
}
else{
if(callback){ callback(localStorage.getItem(keyName))}
}
};
我有一个对象列表:
mylist.each(function (index, element){
getAndSetFromAPI(element, function(date){fillData(element, data);}
});
那么您有什么建议等待完成每个元素然后再处理另一个元素?