⏱️ set-timeout
A simple implementation of setTimeout
and setInterval
for Roblox TypeScript.
This package is available for Roblox TypeScript on NPM:
$ npm install @rbxts/set-timeout
$ pnpm add @rbxts/set-timeout
const cleanup = setTimeout(() => {
print("Hello, world!");
}, 1);
cleanup();
const cleanup = setInterval(() => {
print("Hello, world!");
}, 1);
cleanup();
const promise = setCountdown((secondsLeft) => {
print(secondsLeft);
}, 3);
promise.then(() => {
print("Done!");
});
// 3, 2, 1, Done!
Creates a throttled function that only invokes callback
at most once per every wait
seconds.
By default, leading
and trailing
are both true.
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
// Throttled: 10
Creates a debounced function that delays invoking callback
until after wait
seconds have elapsed since the last time the debounced function was invoked.
By default, leading
is false and trailing
is true.
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
set-timeout is licensed under the MIT License.