const timeoutDeferred = (timeout: number, fn: () => void): IScheduledLater => {
const handle = setTimeout(() => {
scheduled = false;
fn();
return {
isTriggered: () => scheduled,
dispose: () => {
clearTimeout(handle);
scheduled = false;
},
};
const microtaskDeferred = (fn: () => void): IScheduledLater => {