我正在编写一个函数,它对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);
});
Run Code Online (Sandbox Code Playgroud)
你需要回复一个承诺 checker
function checker() {
console.log("in checker");
return $.getJSON("http://djdjdjdjdjinvalidUrl.dkdkdk", function(data) {
console.log("in success function");
});
}
Run Code Online (Sandbox Code Playgroud)
演示:小提琴
也没有必要使用 $.when()
$(document).ready(function(){
checker().done(crosser);
});
Run Code Online (Sandbox Code Playgroud)
演示:小提琴
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |