はじめに
どうもこんにちは!僕は現在1ヵ月本気の技術力向上を目指している現役高校生1年生です!今回はjavascriptでの非同期処理の書き方をちゃんと理解していなかったのでまとめます。
問題
以下のようなコードがあったとします。
※処理の内容としては非同期処理と関係なさそうなものですが、あくまでも書き方のサンプルコードなのでご了承ください。
//userはオブジェクトとします
const getName = async (user) => {
return user.name;
}
const checkName = (user) => {
const name = await getName(user);
}
ここで次の疑問が浮いてきました。
async関数ってPromiseオブジェクトを返すはずなのになんで変数(name)に格納できてるの??
結論
awaitをつけるとPromiseの中身が返却される
awaitをつけると、Promise.then((res) => { … }) を省略した形で書けるということだそうです。
終わりに
awaitについては見ての通り、時間のかかる処理(外部からデータを取得するとか)を「待ってくれる」という意味でしか捉えていなかったので調べておいてよかったです。非同期処理のところはまだ理解があいまいなのでまた躓いたときに戻ってこようと思いました。
参考
About Me
- X(Twitter)
https://twitter.com/shunii_hack