我有这个:
var myError;
function getNames(user,location){
myError=null;
//Make an Ajax Call (this takes some time)
//On Success do this:
if(//Some Condition){
myError=false;
}else{
myError=true
}
}
function first(){
getNames(user, location);
if(myError==false){ //MYCONDITION
//do some custom stuff just for first();
}else{
alert("Failed");
}
}
function second(){
getNames(user, location);
if(myError==false){ //MYCONDITION
//do some custom stuff just for second();
}else{
alert("Failed");
}
}
现在,当我调用 first() 或 second() 时,它总是给我警报消息“FAILED”。问题是 //MYCONDITION 在 getNames() 函数完成之前被执行。我想等待 getNames() 执行,然后才能检查 //MYCONDITION。
我无法设置延迟,因为我不知道 getNames() 将花费多少时间。我正在考虑使用一些 jQquery 函数,但我似乎找不到一个。
而且,我试图让 getNames() 尽可能通用。所以,我正在考虑一种不打扰 getNames() 的方法。
我看到的最后一个选项是将回调()添加到 getNames()。但是,这个函数也被其他不需要回调()的函数调用。
有什么想法吗?
谢谢。