Sleep / Delay Generator
Generate a Promise-based sleep(ms) utility for async/await delays, with cancellation support and example usage.
Controls
Function name
Default delay (ms)
Live preview
Try a delay (ms, max 10000)
Run the delay to see the timing log.
Generated JavaScript
export function sleep(ms = 1000, signal) {
return new Promise((resolve, reject) => {
if (signal?.aborted) return reject(signal.reason ?? new Error("Aborted"));
const timer = setTimeout(() => {
signal?.removeEventListener("abort", onAbort);
resolve();
}, ms);
function onAbort() {
clearTimeout(timer);
reject(signal.reason ?? new Error("Aborted"));
}
signal?.addEventListener("abort", onAbort, { once: true });
});
}
// Example usage
async function loadWithDelay() {
console.log("loading...");
await sleep(1000);
console.log("done after 1000ms");
}
// Cancel a pending delay
const controller = new AbortController();
sleep(5000, controller.signal).catch((err) => console.log(err.message));
controller.abort();