Humanity

Edit the world by your favorite way

Promise が resolve されてるかチェックする

ってこれでいいんじゃないか? と遅延した電車内でふと気が付いた。 コードは全部スマホで打ったので syntax error 等あるかもしれませんが…

追記(2017/2/15 21:50):案の定 delay() 関数が間違ってたので修正。あと例を追記。

追記(2017/2/19 21:50)ブクマされてるみたいなのでさらに追記。 チェックするまでの間にタイムラグがあるので、コードの一番下の方でも示したように、 delay(1) (1ms) の Promise はチェックするまでに resolve されてしまうため resolved と判定されることに注意。 なので本当はこういうコードが必要ない書き方にするのが一番いいんだろうと思う。

ただ以前 resolve されてるか判定したいことがあったような?とふと思い出してやってみたという程度なので、参考程度に。

追記(2017/2/19 22:27):あとそういえば setTimeout(fn, 0) よりも setImmediate(fn) 使った方がいいかもしれません。

jxck.hatenablog.com