これは私のテストコードです(ここでフィドル):
console.log('Before wait');
setTimeout(function () { console.log('Yo!'); }, 1000);
var start = Date.now();
while (Date.now() < start + 3000) {}
console.log('After wait');
これは、Chrome でのイベントのタイムラインです。
- 時間 0 秒: 「待機前」を印刷します。
- 時間 3 秒: 「待機後」を出力し、「よ!」の直後に出力します。
この動作は仕様どおりですか? なぜそうではないのですか
- 時間 0 秒: 「待機前」を印刷します。
- 時間 3 秒: 「待機後」を印刷します。
- 時間 4 秒: 「よ!」と表示されます。
?