【问题标题】:ES6 fetch return stament error [duplicate]ES6获取返回语句错误[重复]
【发布时间】:2017-01-27 09:52:24
【问题描述】:

以下返回 "undefined" X 2 from:

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

【问题讨论】:

    标签: javascript asynchronous fetch-api


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 2016-01-04
      • 1970-01-01
      • 2020-05-28
      • 2021-05-27
      • 2014-01-09
      • 2013-10-27
      相关资源
      最近更新 更多