我学习JS几个月,我编写了简单的脚本。但现在我碰到了一个我无法在谷歌制定的问题。我有程序
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的范围问题。可能我不理解整个想法范围,哈哈。
答案 0 :(得分:0)
您需要了解异步请求的性质。
异步意味着:您正在启动一些操作(在一段时间后)将更改状态并调用回调函数。
但是:在启动异步操作后,正常的程序流程将继续。
这是什么意思?
console.log(iWantValueFromAjax)
将在调用$ .ajax()之后立即执行。所以它肯定会在调用请求回调之前运行