generated at
Promiseを外側からresolveする
jsでpromiseを作って、それの制御を外側からする
js
const createResolver = () => { let res let rej const prom = new Promise((resolve, reject) => { res = resolve rej = reject }) return { prom, res, rej } }


promiseのcallbackの中から得られるresolve, reject関数は、スコープの外に持ち出して外部から呼び出すことが可能
globalに定義できなくて、特定のライブラリに渡さないといけないコールバックイベントをpromise化したいときに使える

やっていることはどうってこと無いのだが、これが可能ってことを知っておかないと書けない
普通にpromise触ってるとこれなかなか思いつかない気がするがどうだろう

このやり方を紹介 or 広めた人が誰なのか知らない
ぐぐってみると割とヒットする
javascript primise resolve outside
などで検索

上みたいにサクッと自分でresolveを持ち出すんでもいいし、ライブラリなどを探してもいいと思う

そしてついにECMAScriptに

ここでみた





これって「終わった」「失敗した」だけを通知するevent emitterみたいに見えるな
途中である、というのを判定するのは難しそうだが、
resolveされたら変数に保持するようにして、
それを見に行ってundefinedだったらpendingと判定すればいい?