孤独プログラマー譚

孤独死が近い。

Promise 非同期メソッドの結果で処理を分岐

よくあるのが、オブジェクトをresolveし、その中に分岐用のフラグを含める。
まったく美しくない。見ててつらい。

const confess = (iLoveMai) => {
  console.log(iLoveMai ?
    '私は白石麻衣を愛しています。'
    : '私は白石麻衣を愛していません。'
  )
}

const { love: iLoveMai1 } = await Promise.resolve({ love: true })
confess(iLoveMai1) // 私は白石麻衣を愛しています。
const { love: iLoveMai2 } = await Promise.resolve({ love: false })
confess(iLoveMai2) // 私は白石麻衣を愛していません。


resolve, reject で分岐させる。
オブジェクトにフラグを持たせる必要がない。
シンプルで分かりやすい。良い!

const iLoveMai3 = await Promise.resolve().then(() => true)
confess(iLoveMai3) // 私は白石麻衣を愛しています。
const iLoveMai4 = await Promise.reject().catch(() => false)
confess(iLoveMai4) // 私は白石麻衣を愛していません。