カメリアの記事

意味があることやないことを綴ります

JavaScript で非同期関数の戻り値を関数の外に出したかった

下のような話です。非同期関数の戻り値は then() で受けるでしょ、それで then() の戻り値は then() で受けるでしょ。あれ、そうすると値は一生 then() の中から出られないの? という困りごとがありました。

function fn() {
  asyncFunction()
  .then(() => {
    return value // value を fn() の返す戻り値にしたいんだけど?
  })
}

方法を知らなかったんですね。 JavaScript の本など読んだことがないので基本的なことが分かっていないのです。気付いたときにはあっけに取られ、乾いた笑いが漏れました。さて、下のようにするといいようです。

function fn() {
  return asyncFunction() // ここで return するだけ
  .then(() => {
    return value
  })
}