@psxcode/wait
v0.1.1
Published
Functional setTimeout and setInterval
Downloads
394
Maintainers
Readme
Wait
Functional setTimeout
and setInterval
.
Install
npm install @psxcode/wait
wait
(timeGetter?: () => number) => (cb: () => void) => (ms?: number) => () => void
import { wait } from '@psxcode/wait'
// Signature
(timeGetter?: () => number) => // optional timeGetter, defaults to () => 0
(callback: () => void) => // callback
(ms?: number) => // optional timeout ms, defaults to timeGetter()
() => void // returns cancel function
Usage with timeGetter
:
const timeGetter = () => Math.random() * 1000
// create waiter function
const waiter = wait(timeGetter)(callback)
// invoke waiter
const cancel = waiter() // timeout is taken from timeGetter
// clear timeout
cancel()
Usage with milliseconds:
// create waiter function, skip timeGetter
const waiter = wait()(callback)
// invoke waiter
const cancel = waiter(1000) // provide time
// clear timeout
cancel()
wait-promise
(timeGetter?: () => number) => (ms?: number) => Promise<void>
import { waitPromise } from '@psxcode/wait'
// Signature
(timeGetter: () => number) => // optional timeGetter, defaults to () => 0
(ms = timeGetter()) => // optional timeout ms, defaults to timeGetter()
Promise<void> // returns Promise
Usage with timeGetter
:
const timeGetter = () => Math.random() * 1000
// create waiter function
const waiter = waitPromise(timeGetter)
// invoke waiter
await waiter() // timeout is taken from timeGetter
Usage with milliseconds:
// create waiter function, skip timeGetter
const waiter = waitPromise()
// invoke waiter
await waiter(1000) // provide time
ping
(timeGetter: () => number) => (cb: () => void) => () => () => void
import { ping } from '@psxcode/wait'
// Signature
(timeGetter: () => number) => // timeGetter
(callback: () => void) => // callback
() => // invoke to run
() => void // returns cancel function
Usage:
const timeGetter = () => Math.random() * 1000
// create pinger function
const pinger = ping(timeGetter)(callback)
// run pinger
const cancel = pinger() // returns cancel function
// cancel ping
cancel()
wait-time
(cb: () => void) => (ms: number) => () => void
Same as wait
, but without timeGetter
import { waitTime } from '@psxcode/wait'
// Signature
(callback: () => void) => // provide callback
(ms: number) => // provide timeout ms
() => void // returns cancel function
Usage:
// create waiter function
const waiter = waitTime(callback)
// invoke waiter
const cancel = waiter(1000) // provide time
// clear timeout
cancel()
wait-time-promise
(ms: number) => Promise<void>
Same as wait-promise
, but without timeGetter
import { waitTimePromise } from '@psxcode/wait'
// Signature
(ms: number) => // provide timeout ms
Promise<void> // returns Promise
Usage:
// invoke waiter
await waitTimePromise(1000) // provide time