debounce.js

import debounce from 'debounce.js'

Description

Utility module for debouncing user-interactions (or any other events).

Its main application are cases where expensive operations like updating or querying data are performed in response to some event like a user typing into a search box.

debounce
target ⟶ wrapper
target, timeout ⟶ wrapper
A decorator function that takes a target function and returns a wrapper that will only call the target after a set timeout expires. Repeatedly calling the wrapper while the timeout is running will reset the timeout without calling the target function.

Example

const update = value => expensive_operation(value) input.addEventListener("change", debounce(event => update(input.value))) This code will debounce the update event handler of an input element, calling the update function only after no changes have been made for at least one second.