ホームページ >ウェブフロントエンド >jsチュートリアル >非同期 AJAX 呼び出しの戻り値を処理するにはどうすればよいですか?

非同期 AJAX 呼び出しの戻り値を処理するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-27 07:24:11320ブラウズ

How Can I Handle Asynchronous AJAX Call Return Values?

非同期 AJAX 呼び出しと変数の戻り

AJAX 呼び出しなどの非同期プログラミングでは、呼び出し自体が複雑であるため、関数から返される変数はすぐには使用できません。すぐには実行されません。 AJAX 呼び出しの場合、呼び出しは非同期で行われます。つまり、コードの残りの部分が実行され続けている間、呼び出しはバックグラウンドで実行されます。

あなたが直面している問題は、提供されたコードの get_data 関数が試行することです。 AJAX 呼び出しの結果を直接返す場合。ただし、呼び出しは非同期であるため、関数は結果が返されるまで待つことができません。

解決策: コールバックの使用

この問題を解決するには、コールバックを使用するように get_data 関数を変更する必要があります。関数。コールバック関数は、別の関数に引数として渡され、最初の関数が完了した後で実行される関数です。

修正されたコード内:

function get_data(data, destination, callback) {
  if (lock_get == 0) {
    lock_get = 1;
    $.ajax({
      type: "POST",
      url: destination,
      async: true,
      data: data,
      success: function(data) {
        lock_get = 0;
        if (data && callback) {
          callback(data);
        }
      }
    });
  }
}
  • get_data 関数は、追加パラメータ callback を受け入れるようになりました。これは、AJAX 呼び出しが完了した後に実行される関数です。
  • 成功の内部callback では、AJAX 呼び出しの結果を引数としてコールバック関数が呼び出されます。

コールバックを使用して get_data 関数を呼び出すには:

get_data(data, destination, function(test) {
  notice(test);
});

この例では、匿名コールバック関数は、AJAX 呼び出しの結果を処理するために使用されます。呼び出しの結果は、通知関数に渡されます。

コールバックを使用すると、get_data 関数は AJAX 呼び出しを開始してすぐに戻ることができますが、コールバック関数は後で結果が得られたときに実行されます。

以上が非同期 AJAX 呼び出しの戻り値を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。