我有一个简单的Webworker,它使用setInterval保留了时区的当前时间
setInterval(() => {
userTimezoneTimestamp = userTimezoneTimestamp + 1000
postMessage(userTimezoneTimestamp);
}, 1000);
在我将机器置于睡眠模式之前,它工作正常。当我从睡眠模式重新启动计算机时,我从该工作人员那里得到的时间更长。仅当机器从睡眠模式启动时,如何才能重新启动Web Worker?
( async () => {
const offset_from_API = await getOffsetFromAPI();
const time_received = Date.now(); // for even more granularity we could use performance.now()
const getUpToDateOffset = () => {
return offset_from_API + (Date.now() - time_received);
};
// to compare we will also use an incrementer
let incremented = offset_from_API;
setInterval( () => {
incremented += 1000;
console.clear();
console.log( 'incremented', incremented.toLocaleString( 'en-US' ) );
console.log( 'difference ', getUpToDateOffset().toLocaleString( 'en-US' ) );
}, 1000 );
} )();
function getOffsetFromAPI() { return 1234567; }