我正在使用以下代码从多个网址获取 JSON。但是,当其中一个 URL 失败或收到 404 响应时,执行的功能将不起作用。我阅读了 jquery 文档,我知道无论其中一个调用是否失败,“then”都应该执行。
var data = {};
var calls = [];
for (var i in funcs) {
calls.push(
$.getJSON(base_url+i,
(function(i) {
return function(d) {
data[i] = d;
};
}(i))
)
);
}
$.when.apply($,calls).then(function() {
do_something(data);
});
最佳答案
看看 always
方法。它将在 both cases 中执行.
例如:
$.when.apply($, calls).always(function() {
alert('Resolved or rejected');
});
响应成功的交易,参数与 .done() 相同(即 a = 数据,b = jqXHR),对于失败的交易,参数与 .fail() 相同(即 a = jqXHR,b =错误)。 (c)
关于javascript - 如何在 JSON 请求之一失败时执行 $.when,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927367/