Fix destructuring error when unsubscribing without subscribing (#14566)
This commit is contained in:
		
							parent
							
								
									8baad22f68
								
							
						
					
					
						commit
						0043da909b
					
				
					 1 changed files with 6 additions and 3 deletions
				
			
		|  | @ -210,6 +210,7 @@ const startWorker = (workerId) => { | |||
|     if (subs[channel].length === 0) { | ||||
|       log.verbose(`Unsubscribe ${channel}`); | ||||
|       redisSubscribeClient.unsubscribe(channel); | ||||
|       delete subs[channel]; | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|  | @ -866,19 +867,21 @@ const startWorker = (workerId) => { | |||
|     channelNameToIds(request, channelName, params).then(({ channelIds }) => { | ||||
|       log.verbose(request.requestId, `Ending stream from ${channelIds.join(', ')} for ${request.accountId}`); | ||||
| 
 | ||||
|       const { listener, stopHeartbeat } = subscriptions[channelIds.join(';')]; | ||||
|       const subscription = subscriptions[channelIds.join(';')]; | ||||
| 
 | ||||
|       if (!listener) { | ||||
|       if (!subscription) { | ||||
|         return; | ||||
|       } | ||||
| 
 | ||||
|       const { listener, stopHeartbeat } = subscription; | ||||
| 
 | ||||
|       channelIds.forEach(channelId => { | ||||
|         unsubscribe(`${redisPrefix}${channelId}`, listener); | ||||
|       }); | ||||
| 
 | ||||
|       stopHeartbeat(); | ||||
| 
 | ||||
|       subscriptions[channelIds.join(';')] = undefined; | ||||
|       delete subscriptions[channelIds.join(';')]; | ||||
|     }).catch(err => { | ||||
|       log.verbose(request.requestId, 'Unsubscription error:', err); | ||||
|       socket.send(JSON.stringify({ error: err.toString() })); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue