我有一个声明变量的函数,使用$ .when执行三个ajax请求,修改.done()方法内的变量并返回值:
someFunction = function(){
var myVar;
$.when(ajax1(), ajax2(), ajax3()).done(function(){
myvar = "something";
});
return myVar;
}
但是,由于其异步性质,首先执行return语句并返回undefined
。
我通过在return语句之前添加一些内容来确认这一点(出于调试目的):
setTimeout(function(){
console.log(myVar);
}, 2000);
等待2秒(足够长时间以便所有请求和回调完成)后,它返回正确的值。
那么,我应该如何正确地写这个以使其同步?