javascript - 长时间工作后调用函数(回调)

标签 javascript jquery ajax

我有这样的功能:

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/

相关文章:

PHP 和 Ajax 将文件路径上传到 Mysql 并将重命名的图像保存到文件夹失败

javascript - 调用 "parent"函数的 AJAX

javascript - 根据谷歌地图上的驾驶位置过滤地址

javascript - 将二维数组中的 ID 与另一个二维数组中的 ID 进行比较

javascript - 将单个键盘快捷键分配给 Web 表单上的单选按钮

jquery - 从改变位置 'Div' 停止 'hover'

javascript - 使用 $.getJson 分配变量

javascript - 从 angularjs 更改 Bootstrap 进度条宽度

javascript - 正则表达式匹配所有具有两个或更多字符的html标签,但ul和ol以及其中的列表项

ajax - 为什么 Chrome 取消 CORS OPTION 请求