function GetId() {
var id;
$.post("/Edit/CreateId", function (data) {
id = data;
});
return id;
}
しかし、IDがサーバーから戻ってくる前に戻ります。 idは未定義です。JSON結果が到着する前にJavaScript関数が返される
この問題を回避する方法はありますか?
function GetId() {
var id;
$.post("/Edit/CreateId", function (data) {
id = data;
});
return id;
}
しかし、IDがサーバーから戻ってくる前に戻ります。 idは未定義です。JSON結果が到着する前にJavaScript関数が返される
この問題を回避する方法はありますか?
コールバックを渡すことも、匿名関数を使用することもできます。それはうまくいくかもしれませんが、おそらく少し不便です。私はあなたの他の機能が一緒にどのように動作するのか分かりません。匿名関数と
function GetId(callback) {
$.post("/Edit/CreateId", function (data) {
var id = data;
callback(id)
});
}
使用例:
GetId(function(id){
//Do what you need to do.
});
post()
方法は、非同期であり、そのようなそのsuccess
方法は、結果がある場合に、火災やそれまでGetId
関数の残りの部分をブロックしないよう。
id
の値をグローバル変数(悪い選択肢)に割り当てるか、またはコールバック関数(引数としてid
)として残りの機能を直接post
success
関数:
function GetId(cb) {
$.post("/Edit/CreateId", function (data) {
// rest of your program logic will be executed here
cb(data);
});
}
'$ .ajax()'成功メソッドを使用します。 – elclanrs
この投稿をご覧ください:http://stackoverflow.com/questions/10155503/jquery-having-issue-with-global-variable-inside-function-ajax-function/10155553#10155553 –