frontend/.pnpm-store/v3/files/d6/5e16a25245ebe48c41e856c1d0bb1575c93d3b6eb9a1e1a08f8ae8a94bdec86a7ce940cdb04a7a6aef7bc8e23d1c93036a664a27ef2fb4c70f0c3f4324eb93

30 lines
729 B
Plaintext

let nextHandle = 1;
let resolved;
const activeHandles = {};
function findAndClearHandle(handle) {
if (handle in activeHandles) {
delete activeHandles[handle];
return true;
}
return false;
}
export const Immediate = {
setImmediate(cb) {
const handle = nextHandle++;
activeHandles[handle] = true;
if (!resolved) {
resolved = Promise.resolve();
}
resolved.then(() => findAndClearHandle(handle) && cb());
return handle;
},
clearImmediate(handle) {
findAndClearHandle(handle);
},
};
export const TestTools = {
pending() {
return Object.keys(activeHandles).length;
}
};
//# sourceMappingURL=Immediate.js.map