使用時間が常に 5000 ミリ秒である理由がわかりません。最初の値が 6000、2 番目の値が 7000 だといつも思うのはなぜですか?
setTimeout の遅延時間は、最初のブロック時間 1000ms が setTimeout の 5000ms に含まれて、同様に実行された時点で判定されます。このときのsetTimeoutの遅延時間が以前と比べて2000msを超えているかどうか、超えている場合は実際に使用する時間はMAX(setTimeout, while())の値になります
settimeout はスタックにプッシュされますが、ブロッキングがなく時間に達している限り、最初のブロッキング 1000ms が実行され、その後 5000ms 遅れたブロッキングの 1000ms が実行されます。 2 番目のブロックは 5000 ミリ秒後に実行され、2000 ミリ秒遅れます
setTimeout の遅延時間は、最初のブロック時間 1000ms が setTimeout の 5000ms に含まれて、同様に実行された時点で判定されます。このときのsetTimeoutの遅延時間が以前と比べて2000msを超えているかどうか、超えている場合は実際に使用する時間はMAX(setTimeout, while())の値になります
。settimeout はスタックにプッシュされますが、ブロッキングがなく時間に達している限り、最初のブロッキング 1000ms が実行され、その後 5000ms 遅れたブロッキングの 1000ms が実行されます。 2 番目のブロックは 5000 ミリ秒後に実行され、2000 ミリ秒遅れます
。