ES6取回返回错误
问题描述:
以下返回“未定义”X 2来自:ES6取回返回错误
countriesUrl是对象数组。
console.log(countriesURL2);
console.log(carMakesUrl2);
function getDataFromJSON(url){
var dataJSON;
fetch(countriesUrl).then(function(data) {
if (data.ok) {
data.json().then(function(data) {
dataJSON = data;
return dataJSON;
});
}
});
return dataJSON;
}
function displayData(){
var countriesURL2 = getDataFromJSON(countriesUrl);
var carMakesUrl2 = getDataFromJSON(carMakesUrl);
console.log(countriesURL2);
console.log(carMakesUrl2);
}
displayData();
为什么“dataJSON”返回undefined?
答
Fetch返回一个承诺,因此您的then
函数中的所有内容都是异步运行的。 dataJSON
返回之前它被设置在您的承诺内。