目次
環境
- JavaScript ES2017
awaitの戻りを待たずに次の処理が進んでしまっている(ように見える)
async関数の中にawaitを書いているのに、awaitの戻りを待たずに次の処理が進んでしまっている(ように見える)。
async function main(){ const someVariable = await someAsyncFunction(); console.log(someVariable );//undefined }
Promiseオブジェクトの状態を調べてみた
試しにawaitを削って、someAsyncFunctionから戻ってくるPromiseオブジェクトの状態を調べてみた。
async function main(){ const someVariable = someAsyncFunction(); console.log(someVariable );//Promise(undefined) }
するとundefinedでresolveされたPromiseオブジェクトが戻っていることがわかった。
結論
someAsyncFunction()
の中で場合分けして処理をしていたのだが、そこに抜け道があった。Promiseオブジェクトを返さずに抜けるルートがあったのだった。
不注意。