You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			23 lines
		
	
	
		
			670 B
		
	
	
	
		
			TypeScript
		
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			670 B
		
	
	
	
		
			TypeScript
		
	
| 
											4 years ago
										 | let lastTime = Date.now(); | ||
|  | const interval = 10 * 1000; | ||
|  | let timeTravelListener: (() => void) | undefined; | ||
|  | 
 | ||
|  | function checkTime() { | ||
|  |   const currentTime = Date.now(); | ||
|  |   if (currentTime > lastTime + interval * 2) { | ||
|  |     if (!timeTravelListener) { | ||
|  |       throw new Error('timeTravelListener should have been set in initWallClockListener'); | ||
|  |     } | ||
|  |     timeTravelListener(); | ||
|  |   } | ||
|  |   lastTime = currentTime; | ||
|  | } | ||
|  | 
 | ||
|  | export const initWallClockListener = (onTimeTravelDetectedListener: () => void) => { | ||
|  |   if (timeTravelListener) { | ||
|  |     throw new Error('Wall clock listener already init'); | ||
|  |   } | ||
|  |   timeTravelListener = onTimeTravelDetectedListener; | ||
|  |   global.setInterval(checkTime, interval); | ||
|  | }; |