我有两个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()
意味着第一个是成功回调,后者是失败回调。怎么了?
答案 0 :(得分:2)
你应该return $.get(...
实际拥有数组中的延迟对象