utils.ts -> Throttler.ts
This commit is contained in:
		
							parent
							
								
									20de548763
								
							
						
					
					
						commit
						c8a38cdd83
					
				
							
								
								
									
										17
									
								
								frontend/src/Throttler.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								frontend/src/Throttler.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | export class Throttler { | ||||||
|  |     private hasBeenCalledWithinTime = false; | ||||||
|  |     private lastCallFunc: (() => any) | null = null; | ||||||
|  | 
 | ||||||
|  |     public constructor(private minimumTimeBetweenCall: number) {} | ||||||
|  | 
 | ||||||
|  |     public call(func: () => any) { | ||||||
|  |         this.lastCallFunc = func; | ||||||
|  |         if (this.hasBeenCalledWithinTime) return; | ||||||
|  |         this.hasBeenCalledWithinTime = true; | ||||||
|  |         func(); | ||||||
|  |         setTimeout(() => { | ||||||
|  |             this.hasBeenCalledWithinTime = false; | ||||||
|  |             if (this.lastCallFunc) this.lastCallFunc(); | ||||||
|  |         }, this.minimumTimeBetweenCall); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user