Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/webtorrent/webtorrent.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFeross Aboukhadijeh <feross@feross.org>2021-04-13 02:16:52 +0300
committerFeross Aboukhadijeh <feross@feross.org>2021-04-13 02:16:52 +0300
commit0917b15877d3a8350489d084615a0301606f41e9 (patch)
tree825e5806fa99854c8d003d96931c9c8e0237ccae /lib
parent9f415f812e99de2f6b9d74e0c0841c9a10d8904a (diff)
remove leaked event listeners
Diffstat (limited to 'lib')
-rw-r--r--lib/peer.js16
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()
}