function GetId() {
var id;
$.post("/Edit/CreateId", function (data) {
id = data;
});
return id;
}
但它在id从服务器返回之前返回;所以id未定义。
这有什么解决方法吗?
答案 0 :(得分:3)
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 );
});
}
答案 1 :(得分:2)
您始终可以传入回调或使用匿名函数。它可以工作,但可能会有点不方便。我不知道你的其他功能如何协同工作。
function GetId(callback) {
$.post("/Edit/CreateId", function (data) {
var id = data;
callback(id)
});
}
使用匿名函数的示例:
GetId(function(id){
//Do what you need to do.
});