event based await in guildAvailability method
This commit is contained in:
		
							parent
							
								
									c4a3fbc45c
								
							
						
					
					
						commit
						6b5c15d19a
					
				
					 1 changed files with 9 additions and 10 deletions
				
			
		|  | @ -311,16 +311,15 @@ export class Guild extends Base { | ||||||
|    * @param delay the delay between checking guild availability |    * @param delay the delay between checking guild availability | ||||||
|    */ |    */ | ||||||
|   async awaitAvailability(delay: number = 1000): Promise<void> { |   async awaitAvailability(delay: number = 1000): Promise<void> { | ||||||
|  |     return await new Promise((resolve, reject) => { | ||||||
|       if(!this.unavailable) return; |       if(!this.unavailable) return; | ||||||
|     var loaded = false; |       var listener = (guild: Guild): void => { | ||||||
|     var listener = (guild: Guild): void => { loaded = loaded || guild.id === this.id }; |         if (guild.id === this.id) { | ||||||
|     this.client.on('guildLoaded', listener); |           this.removeListener('guildLoaded', listener); | ||||||
|     while(true) { |           resolve(); | ||||||
|       await new Promise(resolve => setTimeout(resolve, delay)); |  | ||||||
|       if(loaded) { |  | ||||||
|         this.client.removeListener('guildLoaded', listener); |  | ||||||
|         return; |  | ||||||
|         } |         } | ||||||
|  |       }; | ||||||
|  |       this.client.on('guildLoaded', listener); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue