【发布时间】:2015-02-08 17:18:33
【问题描述】:
我有两个 AJAX 延迟,当两者都成功时,应该会产生成功消息。否则,如果其中一个失败,则应显示错误消息。精简代码:
var reqs = $.map(['file', 'db'], function(mode) {
$.get(wspath(desyn.repo_id, 'revert', { mode: mode, path: path, version: ver }))
});
$.when(reqs[0], reqs[1]).then(
function() { alert('success'); },
function() { alert('error'); }
);
出于调试目的,我强制第一个请求失败 - 在服务器上我抛出内部 500 错误。这在网络控制台中得到证实。但是,成功回调仍然执行,而不是失败回调。
据我了解(如 jQuery docs page 的最后一个示例中所述),将两个函数传递给 then() 意味着第一个是成功回调,后者是失败回调。怎么了?
【问题讨论】:
标签: jquery ajax callback jquery-deferred