我有这样的功能:
function update_List(){
LIST=[];
$.each(feed_urls,function(index,value){
$.getJSON(value, function(data) {
$.each(data.feed.entry,function(i,val){
LIST.push(val.content.src);
});
});
});
some_function();
}
问题是 some_function();
在 LIST
完全更新之前被调用。
我该如何解决这个问题?
我试过使用自定义事件,我也查阅了一些有关回调的内容,但没有任何帮助。
编辑:我希望仅在所有 getJSON
调用完成后调用 some_function()
。
最佳答案
如果要在所有Ajax 调用完成后调用该函数,您应该使用deferred objects。 :
function update_List(){
LIST=[];
var deferreds = [];
$.each(feed_urls,function(index,value){
deferreds.push($.getJSON(value, function(data) {
$.each(data.feed.entry,function(i,val){
LIST.push(val.content.src);
});
}));
});
$.when.apply($, deferreds).then(some_function);
}
关于javascript - 长时间工作后调用函数(回调),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8478407/