0

私はいくつかのタスクを実行する関数を持っています。関数内にはajax呼び出しがあります。ajaxcall から取得した応答が true の場合、関数は残りのタスクを続行する必要があります。それ以外の場合は、その時点で停止する必要があります。しかし、上記のことは起こっていません。代わりに、関数は ajax 呼び出しとは無関係に実行されます。これで私を助けてください

function f1(id)
{
var test= id
var url="contentserver?pagename=mandatory@id"=+id;
var ajax=new Ajaxrequest(url,validatecallback);
ajax.doGet();
if(id==true){
return;
}
........(some code which has to carried out after the ajax call)
}
function validatecallback
{
this function gets the response for the above mentioned ajaxcall
we are setting a global variable(i.e id) here so that we can use that we can retrieve that in function f1
}
4

2 に答える 2

0

この関連する質問に対する私の回答を参照してください: How can I write a async method in JavaScript when post or looping?

基本的に考え方を変える必要があります。代わりに次のようにする必要があります。

function f1(id) {
  var test= id
  var url="contentserver?pagename=mandatory@id"=+id;
  var ajax=new Ajaxrequest(url,function (r) {
      validatecallback(r)
      if(id==true){
        return;
      }
      ........(some code which has to carried out after the ajax call)
  });
  ajax.doGet();
}
于 2010-09-15T18:56:50.183 に答える
0

関数「f1」には、「id」と呼ばれる仮パラメータがあります。これは、ステートメント「if(id==true)」でテストする変数です。「id」と呼ばれるグローバル変数もあり、コールバック関数がそれにアクセスして変更することは事実かもしれませんが、それは別の変数です。これを変更しても、f1 のテストには影響しません。

于 2010-09-15T18:54:38.597 に答える