ai-chatbot/lib/client/canvas-save-queue.ts

12 lines
368 B
TypeScript

/** Serialize local saves so each request reads the revision returned by the last. */
export function createCanvasSaveQueue() {
let pending: Promise<unknown> = Promise.resolve();
return {
enqueue<T>(save: () => Promise<T>): Promise<T> {
const next = pending.then(save, save);
pending = next.catch(() => undefined);
return next;
},
};
}