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