4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

async関数が返す値はPromiseになるんじゃないの…?

Posted at

はじめに

どうもこんにちは!僕は現在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

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?