Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

JavaScript のawaitが無視される(ように見える)

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

目次

環境

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オブジェクトを返さずに抜けるルートがあったのだった。

不注意。