Из того, что я понял в нескольких ответах SO, если компьютер переходит в режим ожидания после вызова setTimeout
, период ожидания следует игнорировать.
Например:
- t0:
setTimeout(foo, 30000);
- t0 + 20 с: компьютер переходит в спящий режим
- t0 + 40 с: компьютер выходит из спящего режима
- t0 + 50 с:
foo
is с именем
Но мои тесты показывают следующее поведение:
- t0:
setTimeout(foo, 30000);
- t0 + 20 с: компьютер переходит в спящий режим
- t0 + 40 с: компьютер выходит из спящего режима и
foo
называется
Насколько я понимаю, когда компьютер просыпается, если тайм-аут был бы запущен во время периода сна, он мгновенно срабатывает, в противном случае он срабатывает в момент времени t0 + [значение таймаута].
Итак, каково ожидаемое поведение? Это одинаково для всех браузеров и ОС?
Один из моих тестов (с последней версией Chrome на Windows 10): https://codepen.io/robloche/pen/GRJvEJB