From 0d05dd0bd3b874384fac49bcaf7dc7a89f6c4d4f Mon Sep 17 00:00:00 2001 From: ianshade Date: Fri, 7 May 2021 10:41:40 +0200 Subject: [PATCH] fix: treat error same as close might be that close is not always emitted --- src/peptalk.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/peptalk.ts b/src/peptalk.ts index 426dca7..6537bea 100644 --- a/src/peptalk.ts +++ b/src/peptalk.ts @@ -545,12 +545,17 @@ class PepTalk extends EventEmitter implements PepTalkClient, PepTalkJS { ws.on('message', this.processChunk.bind(this)) resolve(ws) }) - ws.once('error', (err) => { + const close = (err?: any) => { + ws.removeAllListeners() + if (!err) this.ws = Promise.resolve(null) reject(err) + this.emit('close') + } + ws.once('error', (err) => { + close(err) }) ws.once('close', () => { - this.ws = Promise.resolve(null) - this.emit('close') + close() }) })