Function: deferredCallback()
deferredCallback<
TDefault,ThisArg,Delay,CbArgs>(callback,options): <TResult>(...args) =>IPromisE<TResult>
Defined in: packages/promise/src/deferredCallback.ts:35
Function
PromisE.deferredCallback
Type Parameters
TDefault
TDefault = unknown
ThisArg
ThisArg = unknown
Delay
Delay = unknown
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
Debounce/deferred event handler
typescript
import PromisE from '@superutils/promise'
// Input change handler
const handleChange = e => console.log(e.target.value)
// Change handler with `PromisE.deferred()`
const handleChangeDeferred = PromisE.deferredCallback(handleChange, {
delay: 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