2016-12-21 6 views
0

私はAPIからデータを取得するためにfetchApiを使用しています。私RequestHelpers.jsで は、私はこのコードFetchの約束の範囲外の応答データを取得するには?

module.exports = { 
 
    fetchQuizCollection(){ 
 
     return fetch(HOST+API_KEY) 
 
     .then((response) => response.json()) 
 
     .then((responseData) => { 
 
      let gameData = responseData 
 
      console.log(responseData) //It work 
 
      return responseData 
 
     }) 
 
     .done(); 
 
    } 
 
}

を行うと、私は私が得ることができなかった私のresponseData

let sampleQuiz = RequestHelpers.fetchQuizCollection() 
    console.log(sampleQuiz) //undefined 

が何らかのがあり、別のファイルにその関数を呼び出します約束の外にデータを取得する方法?

答えて

2

それは同期だかのようにあなたは、非同期コードを扱っています。 fetchQuizCollection()は非同期なので、ログコードが実行されるときに返されるデータは使用できません。 .fetch()のすべての機能が完了するまで待つ必要があります。

だけ

return fetchQuizCollection(){ 
    return fetch(HOST+API_KEY) 
    .then((response) => response.json()) 
    ... 

以下のように別のreturnを追加することで約束を返し、あなたが.then()機能でsampleQuizにアクセスすることができfetchQuizCollection()てみましょう。

let sampleQuiz = RequestHelpers.fetchQuizCollection() 
    .then((sampleQuiz) => { 
     console.log(sampleQuiz); 
    }); 
関連する問題