JavaScriptのforEachで同期的にawaitが使えない問題の対処法
2410 ワード
こんにちは。ゲームを作って学ぶプログラミング学習サービスプロアカを開発しているアカネヤです。
JavaScriptのforEachでawaitが使えない問題とは、次のような問題です。
const arr = [1, 2, 3];
arr.forEach(async (el)=>{
await someFunction(el)
})
これは、someFunctionを同期的に3回呼び出そうとして書いたコードです。
しかし実際に実行すると分かるのですが、
someFunction(1)
someFunction(2)
someFunction(3)
はそれぞれの完了を待たずに一斉に呼び出されています。
これはforEachメソッドの性質ですので、どうすることもできません。
JavaScriptのforEachで同期的にawaitが使えない問題の対処法
for of
文を使い、全体をasync関数でラッピングすることでこの問題は解決できます。
const arr = [1, 2, 3];
(async(){
for(let el of arr){
await someFunction(el)
}
})()
終わりに
Author And Source
この問題について(JavaScriptのforEachで同期的にawaitが使えない問題の対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/DanballJP/items/67bc4fc6031020a2ccc6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .