diff --git a/packages/backend/src/misc/collapsed-queue.ts b/packages/backend/src/misc/collapsed-queue.ts index 63779100c8..af1657cc63 100644 --- a/packages/backend/src/misc/collapsed-queue.ts +++ b/packages/backend/src/misc/collapsed-queue.ts @@ -23,7 +23,8 @@ export class CollapsedQueue { private readonly collapse: (oldValue: V, newValue: V) => V, private readonly perform: (key: K, value: V) => Promise, private readonly opts?: { - onError?: (queue: CollapsedQueue, error: unknown) => void, + onError?: (queue: CollapsedQueue, error: unknown) => void | Promise, + onPerform?: (queue: CollapsedQueue, key: K, value: V) => void | Promise, concurrency?: number, }, ) { @@ -73,8 +74,9 @@ export class CollapsedQueue { } else { await this.perform(key, value); } + await this.opts?.onPerform?.(this, key, value); } catch (err) { - this.opts?.onError?.(this, err); + await this.opts?.onError?.(this, err); throw err; } }