我正在编写一个函数,该函数对 Web 服务进行 http 调用,获取一些数据并根据这些数据调用另一个函数。如果服务关闭,则不应调用第二个函数。我认为这样做的明显方法是编写$.when(func1()).done(func2);
,但即使请求被中止,这也会触发 func2 。我意识到我可以通过在 func1 的$.getJSON
方法的成功函数中调用 func2 来解决问题,但如果可能的话,我想使用延迟语法。谁能建议如何以与延迟对象语法一致的方式处理这个问题?
function checker() {
console.log("in checker");
$.getJSON("http://djdjdjdjdjinvalidUrl.dkdkdk", function(data) {
console.log("in success function");
});
}
function crosser(data) {
console.log("in crosser");
}
$(document).ready(function(){
$.when(checker()).done(crosser);
});
请参阅jsFiddle以获取实时示例。