Functions for setTimeout and setInterval
npm install @rbxts/set-timeoutsetTimeout and setInterval for Roblox TypeScript.
console
$ npm install @rbxts/set-timeout
`
`console
$ pnpm add @rbxts/set-timeout
`
$3
#### setTimeout(callback, time)
`ts
const cleanup = setTimeout(() => {
print("Hello, world!");
}, 1);
cleanup();
`
#### setInterval(callback, time)
`ts
const cleanup = setInterval(() => {
print("Hello, world!");
}, 1);
cleanup();
`
#### setCountdown(callback, time, interval)
`ts
const promise = setCountdown((secondsLeft) => {
print(secondsLeft);
}, 3);
promise.then(() => {
print("Done!");
});
// 3, 2, 1, Done!
`
#### throttle(callback, time, options)
Creates a throttled function that only invokes callback at most once per every wait seconds.
`ts
const throttled = throttle((value: number) => {
print(Throttled: ${value});
}, 1);
for (const index of $range(0, 10)) {
throttled(index);
task.wait(0.25);
}
// Throttled: 0
// Throttled: 4
// Throttled: 8
`
#### debounce(callback, time, options)
Creates a debounced function that delays invoking callback until after wait seconds have elapsed since the last time the debounced function was invoked.
`ts
const debounced = debounce((value: number) => {
print(Debounced: ${value});
}, 1);
for (const index of $range(0, 10)) {
debounced(index);
task.wait(0.25);
}
task.wait(2);
debounced(11);
// Debounced: 10
// Debounced: 11
``