最初に 本記事で紹介することは、JSでforEachやmap等のコールバック関数で処理をするメソッドを使い始めたときに、誰もがやらかしてしまいそうになる内容をまとめてみました。 実はこのコードは、最初に「end」と表示される const squareNum = (num) => new Promise((resolve, reject) => resolve(num*2)); [2].forEach(async(num) => console.log(await squareNum(num)));// 最後に表示される console.log("end");// 最初に表示される 配列内の2倍値を表示するために、forEachとsquareNum関数を使う。 しかし、非同期処理として動かしたくないため、forEach内のコールバック関数にasync/awaitを使うが、同期処理化されず最初
![【初心者向け】【JS・TS】forEachのコールバック関数内の非同期処理は、async/awaitで同期処理化できない - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6352c56df6b486d378b129c4a9a6585c5d8090c0/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgwJTkwJUU1JTg4JTlEJUU1JUJGJTgzJUU4JTgwJTg1JUU1JTkwJTkxJUUzJTgxJTkxJUUzJTgwJTkxJUUzJTgwJTkwSlMlRTMlODMlQkJUUyVFMyU4MCU5MWZvckVhY2glRTMlODElQUUlRTMlODIlQjMlRTMlODMlQkMlRTMlODMlQUIlRTMlODMlOTAlRTMlODMlODMlRTMlODIlQUYlRTklOTYlQTIlRTYlOTUlQjAlRTUlODYlODUlRTMlODElQUUlRTklOUQlOUUlRTUlOTAlOEMlRTYlOUMlOUYlRTUlODclQTYlRTclOTAlODYlRTMlODElQUYlRTMlODAlODFhc3luYyUyRmF3YWl0JUUzJTgxJUE3JUU1JTkwJThDJUU2JTlDJTlGJUU1JTg3JUE2JUU3JTkwJTg2JUU1JThDJTk2JUUzJTgxJUE3JUUzJTgxJThEJUUzJTgxJUFBJUUzJTgxJTg0JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0xYWY1ZWZmYjg5MWNhYjQxOWNmZjYxYTNmZDVmZTI2Zg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwTmFvdW1pMTIxNCUyMGluJTIwJUU2JUEwJUFBJUU1JUJDJThGJUU0JUJDJTlBJUU3JUE0JUJFJUUzJTgzJTg3JUUzJTgyJUEzJUUzJTgzJUJDJUUzJTgzJTkwJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzImdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04ODY4NmIzOTkxN2VlZDQ4NzU3YjBhMmRmYTRlZWFkOA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D11c32dd7309280d953c0dc6cbe98c20b)