1.1.2 • Published 3 years ago
@rbxts/set-timeout v1.1.2
⏱️ set-timeout
A simple implementation of setTimeout and setInterval for Roblox TypeScript.
📦 Installation
This package is available for Roblox TypeScript on NPM:
$ npm install @rbxts/set-timeout$ pnpm add @rbxts/set-timeout
📚 Usage
setTimeout(callback, time)
const cleanup = setTimeout(() => {
print("Hello, world!");
}, 1);
cleanup();setInterval(callback, time)
const cleanup = setInterval(() => {
print("Hello, world!");
}, 1);
cleanup();setCountdown(callback, time, interval)
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.
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: 8debounce(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.
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
📝 License
set-timeout is licensed under the MIT License.