const delayedTime = (duration: number)=>{
let timeout: NodeJS.Timeout;
return {
promise: function (): Promise<void> {
return new Promise((resolve) => {
timeout = setTimeout(() => {
console.info('timeout complete');
resolve();
}, duration);
});
},
onCancel: function () {
clearTimeout(timeout);
console.info('timeout cleared');
},
};
};
const delayHander = delayedTime(3000);
// await delayHander.promise();
// delayHander.onCancel();