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