我的脚本需要在 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/