【发布时间】:2014-06-07 23:18:34
【问题描述】:
在下面的代码中,我没有在第二个警报中收到 locale
if `value==null`
我分配了它的locale 值。但最后不要得到它。
function getLocale(id) {
var locale="";
var value = localStorage.getItem(id);
if (value == null) {
$.ajax({
type: "POST",
url: "myUrl",
data: {"new" : id},
success : function(data) {
data = JSON.parse(data)
var id = data[0]["id"];
delete data[0]["id"];
localStorage.setItem(id, JSON.stringify(data[0]));
locale=JSON.stringify(data[0]);
alert(locale);//corrects value
}// end success
});
}else{
locale= localStorage.getItem(id);
}
alert(locale+"locale");//not have the value
return locale;
}
【问题讨论】:
-
ajax 请求是一个异步进程,这意味着它与您的函数返回值的时间不同
-
@T.J.Crowder 是的,这是一个可能的重复,它只是由 OP 以不同的方式询问
-
@T.J.Crowder 我需要这个函数作为返回值
-
这篇文章需要重命名
Ajax response to be a return value of a function -
@LOL:然后阅读该问题的答案。
标签: javascript jquery variables scope variable-assignment