【Node.js】Promiseのresolve/reject では処理は終了しない

【Node.js】Promiseのresolve/reject では処理は抜けない

ハマったことなので、メモ。

タイトルの通りで、return文的な挙動をする認識で書いたら、思ったように動かなくてハマった。 resolve・rejectでPromiseを解決したら、もうそれより後の行は実行されないと思っていた。

var someFunc = () => {
  return new Promise((resolve, reject) => {
    reject();

    console.log("この行は実行されないでしょう...");  // ←実行される
  });
}


async function main() {
  var e = await someFunc()
  .then( res => console.log("OK"))
  .catch(e => console.log(e));
}

main();

だが実際は違い、resolve() reject()しても続きの行は実行されて、意図しない動作をしてしまった。 return文 / throw文的な使い方をしていたので実行されないと思っていた。

promise resolve reject 後の処理 でググったら最初に出てきたが、初心者は引っかかるポイントなのだろうか。🤔

qiita.com