0

そのタイトルは一口でした。これが私が以下のコードでやろうとしていることです。この場合のコールバックは、jQuery$.get関数にあります。

      function getMapMarkup(loadUrl, myVar) {
        me = myVar;
        $.get(
            loadUrl,
            { var1: "hello", var2: "world" },
            function(responseText) {
              me = responseText;
              myVar = me; //doesn't work.  
            },
            "html"
         );     
        }

myVarコールバックのの値を変更してfunction(responseText)、後でプログラムで使用できるようにする方法はありますか?それとも、私がやろうとしていることについて別の(より良い)方法がありますか?

4

2 に答える 2

2

later on呼び出しの直後を意味する場合は、AJAXは非同期であり、すぐに戻り、成功コールバックをかなり後で実行できる$.getため、方法はありません。$.getこれがいつ発生するかを知る唯一の信頼できる方法は、結果に依存するコードをコールバックに配置することです。success成功コールバック内で他の関数を呼び出して、AJAX呼び出しの結果を渡すこともできます。

于 2012-10-26T16:38:30.273 に答える
1

ほとんどの場合myVar、コールバックが実行される前にアクセスしています。

$.get非同期のAJAX呼び出しを行うため、サーバーが応答した後でコールバック関数が呼び出されるため、への即時アクセスでmyVarは値が更新されません。

于 2012-10-26T16:40:03.547 に答える