setTimeout(func, 0) の仕様
lodashのdeferの説明を見ると、以下のように書いてあります。
Defers invoking the func until the current call stack has cleared.
私は、同じ目的で次のようなコードを書くことがあります。
setTimeout(function () {
/* 今の一連の処理が完了するまで遅延させたい処理 */
}, 0);
これと同じだろうと思ってlodashのコードを見てみると、第二引数には1
を渡していました。
なぜ0
ではなくあえて1
を指定するのでしょうか?
もしかすると、0
では遅延させられない(現在実行中の処理をブロックして実行してしまう)可能性がありますか?