javascript - jQuery 多个 getJSON 请求

标签 javascript jquery json

我的脚本需要在 https://graph.facebook.com/xxxx 上获取多个 json 文件, 并从每个json中取出某个字段,然后计算求和。

我的问题是在完成 getJSON 之后如何打印出结果?使用以下代码,它将打印 0。请随意提出任何更好的方法。

var result = 0;
$.each(urls, function (i, url) {
    $.getJSON(url, function (json) {
        result += json.field1;
    })
});
alert(result);

最佳答案

使用 jQuery 1.5 延迟对象:

累积 $.getJSON() 返回的 JQXHR 对象数组

var jxhr = urls.map(function(url) {
    return $.getJSON(url, function(json) {
        result += json.field1;
    })
});

只有$.when它们都是.done():

$.when.apply($, jxhr).done(function() {
    alert(result);
});

注意:这将按照 AJAX 调用完成的顺序累积结果,而不是按照调用的顺序。

关于javascript - jQuery 多个 getJSON 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5817811/

相关文章:

javascript - 在 JavaScript 中调用另一个函数中的函数的问题

javascript - 正则表达式 - 匹配尽可能少的出现次数

javascript - 使用Ajax插入数据但插入需要时间

java - 当我删除一个项目时,回收站查看列表修改所有项目

javascript - 为呈现的 MDBootstrap 元素覆盖 CSS

javascript - 更新多个 <span >'s individually when specific time inside <span>' s 匹配当前时间

javascript - onBlur 和 onFocus 事件

javascript - 如何检查 textarea (tinymce) 是否只包含空格?

json - Nested Swift 4 Codable Struct 不规则使用 CodingKeys

json - 将复杂的 JSON 字符串映射到 POJO 类