@rbxts/set-timeout
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

⏱️ 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.

Package Sidebar

Install

npm i @rbxts/set-timeout

Weekly Downloads

517

Version

1.1.2

License

MIT

Unpacked Size

32 kB

Total Files

25

Last publish

Collaborators

  • littensy