ホームページ >ウェブフロントエンド >jsチュートリアル >非同期 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 関数を呼び出すには:
get_data(data, destination, function(test) { notice(test); });
この例では、匿名コールバック関数は、AJAX 呼び出しの結果を処理するために使用されます。呼び出しの結果は、通知関数に渡されます。
コールバックを使用すると、get_data 関数は AJAX 呼び出しを開始してすぐに戻ることができますが、コールバック関数は後で結果が得られたときに実行されます。
以上が非同期 AJAX 呼び出しの戻り値を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。