我有这个JS文件......
var my_data;
function getData() {
$.ajax({
url: 'https://restcountries.eu/rest/v2/name/aruba?fullText=true',
type: 'GET',
async: false,
success: handleData,
error: showError
});
}
// Process data returned from AJAX call
function handleData(data) {
my_data = data;
console.log('my_data1', my_data);
} // end function handleData
console.log('my_data2', my_data);
getData(); // Call function
当我在控制台中运行此功能时,我得到了
my_data2 :未定义
my_data1 :[{...}](它返回一个数组)
我已经阅读了很多关于将async:false
用于修复此问题的内容。但它仍然无法正常工作。为什么 my_data2 没有返回数组?
答案 0 :(得分:1)
Yo正在使用async:false。但在你的情况下,首先执行语句console.log('my_data2', my_data);
,然后执行你的ajax函数,在这种情况下它返回undefined。
你的代码应该是这样的:
var my_data;
function getData() {
$.ajax({
url: 'https://restcountries.eu/rest/v2/name/aruba?fullText=true',
type: 'GET',
async: false,
success: handleData,
error: showError
});
}
// Process data returned from AJAX call
function handleData(data) {
my_data = data;
console.log('my_data1', my_data);
} // end function handleData
getData(); // Call function
console.log('my_data2', my_data);
它将返回数组
答案 1 :(得分:0)
交换这些:
dependencies {
implementation fileTree(dir: 'libs', include: '*.jar')
// SUB-PROJECT DEPENDENCIES START
/* section being overwritten by cordova, referencing project.properties */
...
// SUB-PROJECT DEPENDENCIES END
}