ホームページ > 記事 > ウェブフロントエンド > 非同期 AJAX 呼び出しからの変数の戻り値を正しく処理するにはどうすればよいですか?
非同期 AJAX 呼び出しと変数戻り値
AJAX を使用して非同期リクエストを実行する場合、変数戻り値がどのように機能するかを理解することが重要です。説明されているシナリオでは、別の JavaScript ファイル内の関数が AJAX 呼び出しを行っていますが、戻り値が正しく設定されていません。
問題の説明
関数 get_data別の JavaScript ファイルで AJAX リクエストを実行し、サーバーから受信したデータを返すことを目的としています。ただし、AJAX 呼び出しは非同期であるため、このアプローチは機能しません。
説明
非同期 AJAX 呼び出しは、実行を続行する前に応答が返されるのを待ちません。呼び出し関数の。この場合、AJAX リクエストが完了する前に get_data 関数が戻り、空のテスト変数が生成されます。
解決策
この問題を解決するには、次の処理を行う必要があります。 AJAX の非同期の性質。これは、get_data 関数にコールバック関数を提供することで実行できます。この関数は、AJAX リクエストが完了し、データが利用可能になったときに実行されます。
更新されたコードは次のとおりです:
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 は、コールバック関数を 3 番目として呼び出す必要があります。引数:
get_data(data, destination, function(test){ notice(test); });
コールバック関数を使用することで、AJAX リクエストの結果が利用可能になったときにコードで処理できるようになりました。
以上が非同期 AJAX 呼び出しからの変数の戻り値を正しく処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。