Skip to content

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