在main.js中:
$.when(
$.get('foo/bar.html'),
$.get('lorem/ipsum.html')
).done(function(data1, data2){
someCode();
});
在lorem / ipsum.html里面:
$.when(
$.get('otherStuff.html'),
$.get('example.html')
).done(function(data1, data2){
moreCode();
});
如何在someCode()
后运行moreCode()
?
答案 0 :(得分:0)
应该是,
$.when( $.ajax( url ), $.ajax( otherUrl ) )
.then( myFunc, myFailure );
function myFunc(){
//get called on success.
}
function myFailure (){
//get called, if either one has an error.
}
答案 1 :(得分:0)
使用then()https://api.jquery.com/jquery.when/
在传递多个Deferred对象的情况下 jQuery.when(),该方法从一个新的“主”返回Promise 跟踪所有Deferred的聚合状态的延迟对象 它已经过去了。该方法将解析其主延迟为 所有Deferreds解决之后,或者拒绝主人Deferreds 其中一名被延期的人被拒绝。如果主延期是 已解决,执行主延迟的doneCallbacks。该 传递给doneCallbacks的参数提供了已解析的值 每个Deferred,并匹配Deferreds传递的顺序 到jQuery.when()。
$.when(
$.get(url),
$.get(otherUrl)
).then(function(data1){
someCode();
});
答案 2 :(得分:0)
我认为你的代码工作正常。
您可以尝试制作无效网址https://XXjsonplaceholder.typicode.com
,someCode
不会被点击
var url1 = "https://jsonplaceholder.typicode.com/users/1";
var url2 = "https://jsonplaceholder.typicode.com/users/2";
/*
$.get(url1).done(function (result1) {
console.log(result1);
});
*/
$.when(
$.get(url1),
$.get(url2)
).then(function(result1, result2) {
console.log("result1");
console.log(result1[0]);
console.log("result2");
console.log(result2[0]);
someCode();
});
function someCode() {
console.log("someCode here");
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;