.
This commit is contained in:
+19
@@ -0,0 +1,19 @@
|
||||
export class AsyncCallbackSet {
|
||||
add(callback) {
|
||||
this.callbacks.push(callback);
|
||||
}
|
||||
async runAll() {
|
||||
if (!this.callbacks.length) {
|
||||
return;
|
||||
}
|
||||
const callbacks = this.callbacks;
|
||||
this.callbacks = [];
|
||||
await Promise.allSettled(callbacks.map(// NOTE: wrapped in an async function to protect against synchronous exceptions
|
||||
async (f)=>f()));
|
||||
}
|
||||
constructor(){
|
||||
this.callbacks = [];
|
||||
}
|
||||
}
|
||||
|
||||
//# sourceMappingURL=async-callback-set.js.map
|
||||
Reference in New Issue
Block a user