Package detail

@rbxts/set-timeout

littensy1.4kMIT1.1.2

Functions for setTimeout and setInterval

roact, roblox-ts, rbxts, hooked

readme

⏱️ set-timeout

GitHub Workflow Status npm version npm downloads GitHub license

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: 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.

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.