Javascript 在Jquery中,如何延迟包含异步调用的同步函数的执行?
我很困惑。在本代码的情况下:Javascript 在Jquery中,如何延迟包含异步调用的同步函数的执行?,javascript,jquery,Javascript,Jquery,我很困惑。在本代码的情况下: function prepareit(list){ for(i=0;i<list.length;i++){ var test = list[i]; $.ajax({....}); } } function testit(list){ for(i=0;i<list.length;i++){ var test = list[i]; $.ajax({....});
function prepareit(list){
for(i=0;i<list.length;i++){
var test = list[i];
$.ajax({....});
}
}
function testit(list){
for(i=0;i<list.length;i++){
var test = list[i];
$.ajax({....});
}
}
$(document).ready(function() {
var list = ['ti','meti','medes','fra','u','w','ro','sit','hd','i'];
prepareit(list);
testit(list);
});
功能准备(列表){
对于(i=0;i您可以在prepareit
中的ajax请求的success函数中调用testit
,如下所示:
function prepareit(list){
for(i=0;i<list.length;i++){
var test = list[i];
$.ajax({ success: function (data) { testit(list); } });
}
}
function testit(list){
for(i=0;i<list.length;i++){
var test = list[i];
$.ajax({....});
}
}
$(document).ready(function() {
var list = ['ti','meti','medes','fra','u','w','ro','sit','hd','i'];
prepareit(list);
//testit(list);
});
功能准备(列表){
对于(i=0;i您可以在prepareit
中的ajax请求的success函数中调用testit
,如下所示:
function prepareit(list){
for(i=0;i<list.length;i++){
var test = list[i];
$.ajax({ success: function (data) { testit(list); } });
}
}
function testit(list){
for(i=0;i<list.length;i++){
var test = list[i];
$.ajax({....});
}
}
$(document).ready(function() {
var list = ['ti','meti','medes','fra','u','w','ro','sit','hd','i'];
prepareit(list);
//testit(list);
});
功能准备(列表){
对于(i=0;i创建一个延迟对象,该对象在所有ajax请求完成时解析
function prepareit(list){
var defArr = [];
for(i=0;i<list.length;i++){
var test = list[i];
defArr.push($.ajax({....}));
}
return $.when.apply($,defArr);
}
function testit(list){
var defArr = [];
for(i=0;i<list.length;i++){
var test = list[i];
defArr.push($.ajax({....}));
}
return $.when.apply($,defArr);
}
$(document).ready(function() {
var list = ['ti','meti','medes','fra','u','w','ro','sit','hd','i'];
prepareit(list).done(function(){
testit(list).done(function(){
alert("All done!");
});
});
});
功能准备(列表){
var defArr=[];
对于(i=0;i创建一个延迟对象,该对象在所有ajax请求完成时解析
function prepareit(list){
var defArr = [];
for(i=0;i<list.length;i++){
var test = list[i];
defArr.push($.ajax({....}));
}
return $.when.apply($,defArr);
}
function testit(list){
var defArr = [];
for(i=0;i<list.length;i++){
var test = list[i];
defArr.push($.ajax({....}));
}
return $.when.apply($,defArr);
}
$(document).ready(function() {
var list = ['ti','meti','medes','fra','u','w','ro','sit','hd','i'];
prepareit(list).done(function(){
testit(list).done(function(){
alert("All done!");
});
});
});
功能准备(列表){
var defArr=[];
对于(i=0;在这种情况下,它似乎无效,因为在所有“prepareit”调用结束后,我需要执行“testit”。在您的代码中,在任何“prepareit”迭代中,运行“testit”的所有CAL@user1824310是的,正是,就像我在编辑中提到的。有什么理由你必须对列表中的每个项目进行单独的ajax调用吗?在这种情况下,这似乎是无效的,因为我需要在所有“prepareit”调用结束后执行“testit”。在你的代码中,“prepareit”的任何迭代都会运行“testit”的所有CAL@user1824310是的,正是,就像我在编辑中提到的。你有什么理由必须对列表中的每个项目进行单独的ajax调用吗?@user1824310如果对你有帮助,请确保通过单击答案旁边的绿色复选标记将其标记为接受答案!@user1824310如果对你有帮助,请确保通过单击将其标记为接受答案g答案旁边的绿色复选标记!