Async/Await使ったりしている中でハマった。
結論
ここを読む。
そしてPromise.all
でラップする。
async function AsyncFetch(urls) { const fetchArray = urls.map( url => fetch(url) ); return Promise.all(fetchArray); }
こういう感じ。
FetchはPromiseを返すので、それをPromise.all
で包んで、全ての処理が終わるのを待つ感じでうまくいく。Promise.allしないとmapは即座に終わったことにされてしまって期待通りに動かない。
http://2ality.com/2016/10/async-function-tips.html#arrayprototypemap
の内容をよく読む。