Skip to content

Commit 7adee54

Browse files
committed
fix: made onCancelled get called only once
1 parent 118b914 commit 7adee54

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

packages/query-core/src/utils.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -471,17 +471,23 @@ export function addConsumeAwareSignal<T>(
471471
getSignal: () => AbortSignal,
472472
onCancelled: VoidFunction,
473473
): T & { signal: AbortSignal } {
474+
let consumed = false
475+
474476
Object.defineProperty(object, 'signal', {
475477
enumerable: true,
476478
get: () => {
477479
const signal = getSignal()
480+
if (consumed) {
481+
return signal
482+
}
483+
484+
consumed = true
478485
if (signal.aborted) {
479486
onCancelled()
480487
} else {
481-
signal.addEventListener('abort', () => {
482-
onCancelled()
483-
})
488+
signal.addEventListener('abort', onCancelled, { once: true })
484489
}
490+
485491
return signal
486492
},
487493
})

0 commit comments

Comments
 (0)