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) // 私は白石麻衣を愛していません。