【发布时间】:2016-08-17 16:59:49
【问题描述】:
我学习 JS 几个月了,我写过简单的脚本。但是现在我遇到了一个我无法在 Google 中制定的问题。我有程序
var iWantValueFromAjax = "im empty";
$.ajax({
type: "POST",
dataType:'jsonp',
url: "https://api.novaposhta.ua/v2.0/json/",
data: {
"modelName": "Address",
"calledMethod": "getCities",
"methodProperties":{},
"apiKey": "6f94a6391cb5134ee68ddb7924de2a3d"},
success: function(msg){
iWantValueFromAjax = msg.data.map(function(e) {
return (e.Description);
});
},
}
);
console.log(iWantValueFromAjax);
我看到什么值变量“iWantValueFromAjax”没有改变。我怀疑我不了解问题 jquery 的范围。可能是我不了解整个想法范围,哈哈。
【问题讨论】:
-
哇,不要用return-obj作为变量名,很混乱
-
其实破折号作为变量名是无效的;这段代码根本不会运行,如此处所示。
-
你返回的东西是:return varName;
-
不清楚您的问题是什么。但是,如果你真的试图在 $.ajax 调用的成功回调中返回一些东西,你不能使用返回的值什么都不做,你不应该试图在这样的函数中返回任何东西 - 或任何异步回调函数-。您可以使用函数内部的代码来操作更大范围的变量或进行函数调用,但您不能从其返回值中获利。
-
@Sergeon,所以我必须使用全局变量?
标签: javascript jquery variables scope