Function: deferredCallback()
deferredCallback<
TDefault,ThisArg,Delay,CbArgs>(callback,options): <TResult>(...args) =>IPromisE<TResult>
Defined in: packages/promise/src/deferredCallback.ts:36
Function
PromisE.deferredCallback
Type Parameters
TDefault
TDefault
ThisArg
ThisArg
Delay
Delay extends number = number
CbArgs
CbArgs extends unknown[] = unknown[]
Parameters
callback
(...args) => TDefault | Promise<TDefault>
options
DeferredAsyncOptions<ThisArg, Delay> = {}
Returns
deferred/throttled function
<
TResult>(...args):IPromisE<TResult>
Type Parameters
TResult
TResult = TDefault
Parameters
args
...CbArgs
Returns
IPromisE<TResult>
Example
typescript
import PromisE from '@superutils/promise'
// Input change handler
const handleChange = (e: { target: { value: number } }) =>
console.log(e.target.value)
// Change handler with `PromisE.deferred()`
const handleChangeDeferred = PromisE.deferredCallback(handleChange, {
delayMs: 300,
throttle: false,
})
// Simulate input change events after prespecified delays
const delays = [100, 150, 200, 550, 580, 600, 1000, 1100]
delays.forEach(timeout =>
setTimeout(
() => handleChangeDeferred({ target: { value: timeout } }),
timeout,
),
)
// Prints:
// 200, 600, 1100