Send close only if not already closed
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "paravel",
|
"name": "paravel",
|
||||||
"version": "0.1.16",
|
"version": "0.1.17",
|
||||||
"description": "Yet another toolkit for nostr",
|
"description": "Yet another toolkit for nostr",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
+8
-3
@@ -8,6 +8,7 @@ export class Executor {
|
|||||||
this.target = target
|
this.target = target
|
||||||
}
|
}
|
||||||
subscribe(filters, {onEvent, onEose}) {
|
subscribe(filters, {onEvent, onEose}) {
|
||||||
|
const closed = false
|
||||||
const id = createSubId('REQ')
|
const id = createSubId('REQ')
|
||||||
const eventListener = (url, subid, e) => subid === id && onEvent?.(url, e)
|
const eventListener = (url, subid, e) => subid === id && onEvent?.(url, e)
|
||||||
const eoseListener = (url, subid) => subid === id && onEose?.(url)
|
const eoseListener = (url, subid) => subid === id && onEose?.(url)
|
||||||
@@ -18,9 +19,13 @@ export class Executor {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
unsubscribe: () => {
|
unsubscribe: () => {
|
||||||
this.target.send("CLOSE", id)
|
if (!closed) {
|
||||||
this.target.off('EVENT', eventListener)
|
this.target.send("CLOSE", id)
|
||||||
this.target.off('EOSE', eoseListener)
|
this.target.off('EVENT', eventListener)
|
||||||
|
this.target.off('EOSE', eoseListener)
|
||||||
|
}
|
||||||
|
|
||||||
|
closed = true
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user