Javascript 同时进行两次ajax调用,并在两次调用完成后进行回调?
我想发出2个api请求,但在第一个回调函数中调用第二个请求对我来说似乎不合适。有没有什么方法可以同时调用这两个函数,并且只有在收到这两个函数的响应时才运行回调函数?您应该在调用之外使用一个变量,该变量在成功时递增。在回调中测试它是否等于调用数,如果为true,则可以调用finish方法 大概是这样的:Javascript 同时进行两次ajax调用,并在两次调用完成后进行回调?,javascript,jquery,Javascript,Jquery,我想发出2个api请求,但在第一个回调函数中调用第二个请求对我来说似乎不合适。有没有什么方法可以同时调用这两个函数,并且只有在收到这两个函数的响应时才运行回调函数?您应该在调用之外使用一个变量,该变量在成功时递增。在回调中测试它是否等于调用数,如果为true,则可以调用finish方法 大概是这样的: var nbSuccess = 0; var nbCalls = 2; call_1.success - nbSuccess++ - if nbSuccess == nbCalls {d
var nbSuccess = 0;
var nbCalls = 2;
call_1.success
- nbSuccess++
- if nbSuccess == nbCalls {doFinish}
call_2.success
- nbSuccess++
- if nbSuccess == nbCalls {doFinish}
function doFinish...
您应该在成功时递增的调用之外使用一个变量。在回调中测试它是否等于调用数,如果为true,则可以调用finish方法 大概是这样的:
var nbSuccess = 0;
var nbCalls = 2;
call_1.success
- nbSuccess++
- if nbSuccess == nbCalls {doFinish}
call_2.success
- nbSuccess++
- if nbSuccess == nbCalls {doFinish}
function doFinish...
您应该在成功时递增的调用之外使用一个变量。在回调中测试它是否等于调用数,如果为true,则可以调用finish方法 大概是这样的:
var nbSuccess = 0;
var nbCalls = 2;
call_1.success
- nbSuccess++
- if nbSuccess == nbCalls {doFinish}
call_2.success
- nbSuccess++
- if nbSuccess == nbCalls {doFinish}
function doFinish...
您应该在成功时递增的调用之外使用一个变量。在回调中测试它是否等于调用数,如果为true,则可以调用finish方法 大概是这样的:
var nbSuccess = 0;
var nbCalls = 2;
call_1.success
- nbSuccess++
- if nbSuccess == nbCalls {doFinish}
call_2.success
- nbSuccess++
- if nbSuccess == nbCalls {doFinish}
function doFinish...
您可以使用$.when()jquery函数
您可以使用$.when()jquery函数
您可以使用$.when()jquery函数
您可以使用$.when()jquery函数
在第一个回调中调用第二个请求使它们同步。只有在第一个完成后,才会调用第二个 如果您想要两个,只在两个完成时发送两个呼叫并处理,您可以(未测试) 对两者使用相同的回调,并使用布尔值确保两者都已完成 类似于(伪代码):
在第一个回调中调用第二个请求使它们同步。只有在第一个完成后,才会调用第二个 如果您想要两个,只在两个完成时发送两个呼叫并处理,您可以(未测试) 对两者使用相同的回调,并使用布尔值确保两者都已完成 类似于(伪代码):
在第一个回调中调用第二个请求使它们同步。只有在第一个完成后,才会调用第二个 如果您想要两个,只在两个完成时发送两个呼叫并处理,您可以(未测试) 对两者使用相同的回调,并使用布尔值确保两者都已完成 类似于(伪代码):
在第一个回调中调用第二个请求使它们同步。只有在第一个完成后,才会调用第二个 如果您想要两个,只在两个完成时发送两个呼叫并处理,您可以(未测试) 对两者使用相同的回调,并使用布尔值确保两者都已完成 类似于(伪代码): 你可以这样做
var response = 0;
var callback = function () {
if (response === 2){/* code */}
};
// first request
$.get(url).done(function () {
response++;
callback();
});
// second request
$.get(url).done(function () {
response++;
callback();
});
你可以这样做
var response = 0;
var callback = function () {
if (response === 2){/* code */}
};
// first request
$.get(url).done(function () {
response++;
callback();
});
// second request
$.get(url).done(function () {
response++;
callback();
});
你可以这样做
var response = 0;
var callback = function () {
if (response === 2){/* code */}
};
// first request
$.get(url).done(function () {
response++;
callback();
});
// second request
$.get(url).done(function () {
response++;
callback();
});
你可以这样做
var response = 0;
var callback = function () {
if (response === 2){/* code */}
};
// first request
$.get(url).done(function () {
response++;
callback();
});
// second request
$.get(url).done(function () {
response++;
callback();
});
我希望这对你有帮助。试试这个
$.ajax("yourUrl",function(){
}).done(function(){
$.ajax("yourUrl",function(){
}).done(function(){
// Do your task
});
});
我希望这对你有帮助。试试这个
$.ajax("yourUrl",function(){
}).done(function(){
$.ajax("yourUrl",function(){
}).done(function(){
// Do your task
});
});
我希望这对你有帮助。试试这个
$.ajax("yourUrl",function(){
}).done(function(){
$.ajax("yourUrl",function(){
}).done(function(){
// Do your task
});
});
我希望这对你有帮助。试试这个
$.ajax("yourUrl",function(){
}).done(function(){
$.ajax("yourUrl",function(){
}).done(function(){
// Do your task
});
});
您可以将两个全局布尔变量设置为每个请求状态的指示符,在每个回调中将每个设置为true,然后检查以确认两个状态变量是否都为true…您可以将两个全局布尔变量设置为每个请求状态的指示符,在每个回调中将每个设置为true,然后检查以确认两个状态变量是否均为真…您可以将两个全局布尔变量设置为每个请求状态的指示器,在每个回调中将每个设置为真,然后检查以确认两个状态变量是否均为真…您可以将两个全局布尔变量设置为每个请求状态的指示器,在每次回调中将each设置为true,然后检查以确认两个状态变量是否都为true…这是最好的解决方案。在回答中添加一个示例可能会有所帮助。谢谢!这正是我所要寻找的。这是IMO的最佳解决方案。在您的答案中添加一个示例可能会有所帮助。谢谢!这正是我所要寻找的。这是IMO的最佳解决方案。在您的答案中添加一个示例可能会有所帮助。谢谢!这正是我所要寻找的。这是IMO的最佳解决方案。在您的答案中添加一个示例可能会有所帮助。谢谢!这正是我要找的。