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返回之前它被设置在您的承诺内。