Web サービスへの http 呼び出しを行い、データを取得し、このデータに基づいて別の関数を呼び出す関数を作成しています。サービスがダウンしている場合は、2 番目の関数を呼び出すべきではありません。これを行うための明白な方法は書くことだと思いました$.when(func1()).done(func2);
が、これはリクエストが中止された場合でも func2 をトリガーします。func1 のメソッドの success 関数内で func2 を呼び出すことで回避できることはわかってい$.getJSON
ますが、可能であれば遅延構文を使用したいと考えています。遅延オブジェクト構文と一致する方法でこれを処理する方法を提案できる人はいますか?
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を参照してください。