Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
19 lines
507 B
Plaintext
19 lines
507 B
Plaintext
type SaveTask<T> = () => Promise<T>;
|
|
/**
|
|
* De-duplicates excessive save invocations,
|
|
* while keeping a single one instant.
|
|
*/
|
|
export default class SaveScheduler<Value> implements Disposable {
|
|
private saveTimeout?;
|
|
private isSaving;
|
|
private delayMs;
|
|
private pendingResolvers;
|
|
private nextSaveTask?;
|
|
constructor(delayMs?: number);
|
|
schedule(saveTask: SaveTask<Value>): Promise<Value>;
|
|
private scheduleSave;
|
|
private executeSave;
|
|
[Symbol.dispose](): void;
|
|
}
|
|
export {};
|