本質的に私はこれを書くことを試みています:
var async1 = $.when( a1() ).then(function(){ a2() });
var async2 = $.when( a3() ).then(function(){ a4() });
$.when(async1, async2).then(function(){
console.log("complete");
});
ただし、a1とa3が実行された時点で、関数はそれ自体が解決されたと見なします。
同じ例をフィドルにまとめました:http://jsfiddle.net/Z7fzR/