setTimeout
caps out at ~25 days.
If you need a bigger timeout, use setBigTimeout
.
import { setBigTimeout } from "./mod.mts";
const FORTY_DAYS_IN_MILLISECONDS = 3.456e9;
// setTimeout doesn't handle big timeouts.
setTimeout(() => {
console.log("Logs immediately! Bad!");
}, FORTY_DAYS_IN_MILLISECONDS);
// setBigTimeout works fine!
setBigTimeout(() => {
console.log("It's been 40 days...no problem!");
}, FORTY_DAYS_IN_MILLISECONDS);
Very similar to setTimeout
, but allows a delay
of arbitrary duration.
Durations can be number
s or bigint
s.
Example:
import { setBigTimeout } from "./mod.mts";
const EIGHTY_FOUR_YEARS_IN_MILLISECONDS = 2.65e12;
setBigTimeout(() => {
console.log("It's been 84 years...");
}, EIGHTY_FOUR_YEARS_IN_MILLISECONDS);
const ONE_MILLION_YEARS = 31536000000000000n;
setBigTimeout(() => {
console.log("JAVASCRIPT WILL NEVER DIE");
}, ONE_MILLION_YEARS);
Very similar to clearTimeout
, but clears big timeouts. Can also clear "normal"
timeouts created by setTimeout
and setInterval
.
Example:
import { clearBigTimeout, setBigTimeout } from "./mod.mts";
const timeout = setBigTimeout(() => {
console.log("This will never be executed");
}, 123456789);
clearBigTimeout(timeout);