function GetId() {
var id;
$.post("/Edit/CreateId", function (data) {
id = data;
});
return id;
}
但是它在id从服务器返回之前返回;所以id是不确定的。JavaScript函数在JSON结果到达之前返回
这有什么解决方法吗?
function GetId() {
var id;
$.post("/Edit/CreateId", function (data) {
id = data;
});
return id;
}
但是它在id从服务器返回之前返回;所以id是不确定的。JavaScript函数在JSON结果到达之前返回
这有什么解决方法吗?
你总是可以传递一个回调或使用匿名函数。它可以工作,但可能会有点不方便。我不知道你的其他功能如何协同工作。
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);
});
}
使用'$。阿贾克斯()''success'方法。 – elclanrs 2012-04-21 09:08:23
看看这篇文章:http://stackoverflow.com/questions/10155503/jquery-having-issue-with-global-variable-inside-function-ajax-function/10155553#10155553 – 2012-04-21 09:12:56