Javascript 设置变量并立即返回新值
我在做这种事的时候遇到了一个问题Javascript 设置变量并立即返回新值,javascript,jquery,Javascript,Jquery,我在做这种事的时候遇到了一个问题 var abc = false; function doSomthing(){ abc = true; return abc; } 它返回false,但如果我运行该函数两次(在控制台中),第二次返回true 谢谢 原始函数 var session_id_resualt = false; function islogdin() { if (localStorage.email == undefined) { localStorage.e
var abc = false;
function doSomthing(){
abc = true;
return abc;
}
它返回false,但如果我运行该函数两次(在控制台中),第二次返回true
谢谢
原始函数
var session_id_resualt = false;
function islogdin() {
if (localStorage.email == undefined) {
localStorage.email = "";
}
if (localStorage.session_id == undefined) {
localStorage.session_id = "";
}
$.post(server + "loginCheck.php", {
loginCheck: "",
cookie: readCookie("h"),
session_id: localStorage.session_id,
email: localStorage.email
},
function (json) {
json = $.parseJSON(json);
if (json.logdin) {
if (json.logdin == "1") {
//var s_id = json.session_id;
session_id_resualt = json.session_id;
//return s_id;
} else {
session_id_resualt = false;
// return false;
}
} else {
session_id_resualt = false;
// return false;
}
});
return session_id_resualt;
}
$.post
是异步的。你需要等待结果。但是,由于$.post
没有提供更改$.ajax
设置的简单方法,因此您必须使用$.ajax
代替异步:false
:
var data = {
loginCheck: "",
cookie: readCookie("h"),
session_id: localStorage.session_id,
email: localStorage.email
};
var url = server + "loginCheck.php";
var callback = function (json) {
/* ... */
}
$.ajax({
type: "POST",
url: url,
async: false, /* importan! */
data: data,
success: callback,
});
参考资料:
doSomething
的范围之外有可用的函数,您为什么需要返回abc
呢?我正在加载时调用函数。函数在我调用它的页面中包含的js文件中