関数のjQuery実行順序に問題があるか、おそらく理解が不足してい$.get()
ます。関数で使用するためにデータベースサーバーからいくつかの情報を取得したいと思います$.ready()
。ご存知のとおり、getが戻ると、データを処理するreturnハンドラーにデータが渡されます。私の場合、readyハンドラー関数内で宣言された変数にいくつかの値を割り当てたいと思います。ただし、問題は、readyが終了するまでのリターンハンドラーが$.get()
実行されないことです。(a)私はこれを正しく行っているのか/より良い方法があるのか、または(b)これを回避する方法があるのか(つまり、get returnハンドラーをすぐに実行するように強制するのか、それとも私が知らない他の修正があるのか)疑問に思っていましたの)。これは私がJavaScriptについて得ていないいくつかの閉鎖的なことだと感じています。
リクエストに応じて、私が意味する例を投稿します。
$(function() {
var userID;
$.get(uri, function(returnData) {
var parsedData = JSON.parse(returnData);
userID = parsedData.userID;
});
});
ご覧のとおり、変数の準備ができていると宣言しています。次に、データベースへのget呼び出しを使用して、必要なデータを取得します。次に、返されたJSONを解析し、前に宣言された変数にuserIDを割り当てます。いくつかのアラートでテストしました。get後のアラートはuserIDを未定義として表示しますが、getのreturnハンドラーのアラートはそれが割り当てられていることを示します。