Javascript ES6获取返回语句错误

Javascript ES6获取返回语句错误,javascript,asynchronous,fetch-api,Javascript,Asynchronous,Fetch Api,以下内容从返回“未定义”X 2: countriesUrl是一个对象数组 console.log(countriesURL2); console.log(carMakesUrl2); function getDataFromJSON(url){ var dataJSON; fetch(countriesUrl).then(function(data) { if (data

以下内容从返回“未定义”X 2:

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”未定义?

Fetch返回一个承诺,因此
then
函数中的所有内容都是异步运行的
dataJSON
在您的承诺中设置之前返回