我想在按钮点击时从会话变量中检索数据,而无需重新加载页面。我的getter函数如下:
function GetSession()
{
var value;
function GetValue(data)
{
value = data;
}
$.get("sessionAPI.php?action=get", function(data) { GetValue(data); });
return value;
}
然而,在调用此函数后,“value”变量仍未定义。我怎样才能将“data”的值赋给“value”变量?谢谢你的答案!
答案 0 :(得分:3)
您正在尝试从异步操作返回一个值(即稍后完成)。这将永远不会起作用,因为它在结果可用之前很久就会返回。你需要使用回调或承诺。
使用回调代码如下:
function GetSession(callback)
{
$.get("sessionAPI.php?action=get", function(data) { callback(data); });
}
并使用如下:
GetSession(function(value){
// Do something with the session value
});
使用承诺:
function GetSession()
{
return $.get("sessionAPI.php?action=get");
}
并使用如下:
GetSession().done(function(value){
// Do something with the session value
});