diff options
author | Feross Aboukhadijeh <feross@feross.org> | 2021-04-13 02:16:52 +0300 |
---|---|---|
committer | Feross Aboukhadijeh <feross@feross.org> | 2021-04-13 02:16:52 +0300 |
commit | 0917b15877d3a8350489d084615a0301606f41e9 (patch) | |
tree | 825e5806fa99854c8d003d96931c9c8e0237ccae /lib | |
parent | 9f415f812e99de2f6b9d74e0c0841c9a10d8904a (diff) |
remove leaked event listeners
Diffstat (limited to 'lib')
-rw-r--r-- | lib/peer.js | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/peer.js b/lib/peer.js index 2f291d8..5471773 100644 --- a/lib/peer.js +++ b/lib/peer.js @@ -20,8 +20,20 @@ exports.createWebRTCPeer = (conn, swarm) => { if (peer.conn.connected) { peer.onConnect() } else { - peer.conn.once('connect', () => { peer.onConnect() }) - peer.conn.once('error', err => { peer.destroy(err) }) + const cleanup = () => { + peer.conn.removeListener('connect', onConnect) + peer.conn.removeListener('error', onError) + } + const onConnect = () => { + cleanup() + peer.onConnect() + } + const onError = err => { + cleanup() + peer.destroy(err) + } + peer.conn.once('connect', onConnect) + peer.conn.once('error', onError) peer.startConnectTimeout() } |