javascript - 如何在 JSON 请求之一失败时执行 $.when

标签 javascript jquery html json

我正在使用以下代码从多个网址获取 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/

相关文章:

javascript - 尝试避免将重复项插入数组 Angular

javascript - 无法使准备和调整大小功能一起工作

javascript - 如何使用 JavaScript 禁用所有内联样式?

jquery - 为什么我不能在 JQuery .empty() 之后添加代码?

html - 如何在 AngularJS 中检索以前的 URL

php - 输入标签上 7 天后的日期

Javascript更多/更少按钮滑动动画?

javascript - 如何在 angular($window).bind() 中访问它?

javascript - 如何从一个 Action 派发另一个 Action 并在 Vuex 中派发另一个 Action

jquery - 响应式导航 - 如何在浏览器最小化时打开/关闭导航