2016-09-19 2 views
-1

Der folgende gibt "undefined" X 2 aus:ES6 Abruf return stament Fehler

countriesUrl ist ein Array von Objekten.

 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(); 

Warum wird "dataJSON" undefined zurückgegeben?

Antwort

0

Fetch gibt ein Versprechen zurück, so dass alles innerhalb Ihrer then-Funktion asynchron ausgeführt wird. dataJSON wird zurückgegeben vor es ist in Ihrem Versprechen festgelegt.