JavaScript の async/await の仕様をずっと誤解していた - dev.to/jgs
すごい初歩的なことかもしれないのだけれど、年単位ぐらいで誤解したままコードを書いていたので懺悔のためにも書いておく...。
何が違ったかというと、async function の扱いである。async function も
code:_
function
と同じだとおもっていて、
code:_
Promise
を返さないと呼び出し側で
code:_
await
できないと勘違いしていた。そのため、今までは
code:_
というような感じで
code:_
Promise
を一旦返すようにしていた。しかし、async function は呼び出すと
code:_
Promise
を返してくれるのだ。
参照: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/async_function
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
とはなんだったんだ.........。とても恥ずかしい.....。
#javascript
original: https://dev.to/jgs/javascript--asyncawait---2l41
#20180208 #0208