私はこれを持っています:
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」が表示されます。問題は、getNames()関数が終了する前に//MYCONDITIONが実行されていることです。// MYCONDITIONをチェックする前に、getNames()が実行されるのを待ちたい。
getNames()にかかる時間がわからないため、遅延を設定できません。jQquery関数の使用を考えていましたが、見つからないようです。
そして、私はgetNames()を可能な限り一般的なものにしようとしています。だから、私はgetNames()を邪魔しない方法を考えています。
私が見る最後のオプションは、getNames()にcallback()を追加することです。ただし、この関数は、callback()を必要としない他の関数によっても呼び出されています。
何か考えはありますか?
ありがとう。