JavaScript の async/await の仕様をずっと誤解していた - dev.to/jgs
すごい初歩的なことかもしれないのだけれど、年単位ぐらいで誤解したままコードを書いていたので懺悔のためにも書いておく...。
何が違ったかというと、async function の扱いである。async function も
code:_
function
と同じだとおもっていて、
code:_
Promise
を返さないと呼び出し側で
code:_
await
できないと勘違いしていた。そのため、今までは
code:_
というような感じで
code:_
Promise
を一旦返すようにしていた。しかし、async function は呼び出すと
code:_
Promise
を返してくれるのだ。
code:_
Node.js v9.5 で確認した。
code:_
code:_
Promise
が返ってくる...。よくよく調べていくと async function の中で
code:_
return
すると
code:_
Promise
を
code:_
resolve
し、
code:_
throw
すると
code:_
Promise
を
code:_
reject
することになるんだそうな。
code:_
= >
code:_
code:_
= >
code:_
まじか...。俺の
code:_
Promise
とはなんだったんだ.........。とても恥ずかしい.....。