ES6获取返回错误

时间:2016-09-19 16:20:41

标签: javascript asynchronous fetch-api

以下内容从

返回“undefined”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”返回未定义?

1 个答案:

答案 0 :(得分:0)

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