/** * Runs asynchronous operations in call order while keeping the queue usable * after an individual operation rejects. */export class SerializedAsyncQueue { private tail: Promise<void> = Promise.resolve(); run<T>(operation: () => Promise<T>): Promise<T> { const result = this.tail.then(operation, operation); this.tail = result.then( () => undefined, () => undefined, ); return result; }}
/**
* Runs asynchronous operations in call order while keeping the queue usable
* after an individual operation rejects.
*/
export class SerializedAsyncQueue {
private tail: Promise<void> = Promise.resolve();
run<T>(operation: () => Promise<T>): Promise<T> {
const result = this.tail.then(operation, operation);
this.tail = result.then(
() => undefined,
() => undefined,
);
return result;
}
}