2017-04-18 7 views
1

以下のようにしたい。私は送信する応答は常に空の配列ですが、APIがデータを返すので、非同期呼び出しの問題だと思います。これはかなり新しいです、どんな入力も非常に高く評価されています!非同期ループが終了するまで明示的な応答を送信するにはどうすればよいですか?

app.get('/:id/starships', (req, res) => { 
    let person = findPersonById(people, req.params.id)[0]; 
    let starshipUrls = person.starships; 
    for(let i=0; i<starshipUrls.length; i++){ 
    axios.get(starshipUrls[i]).then(response => { 
     starships.push(response.data); 
    }) 
    .catch(err => console.log(err)); 
    } 
    res.json(starships); 
}) 

答えて

4

axios.getは、promiseを返します。

+0

ああ私は前にPromise.allを見たことがなかった。完璧に動作します、ありがとう! – TigerBalm

関連する問題