← Back to all briefs
JavaScript50s read

Node 26.10 Ships util.debounce and util.throttle in Core

Two of the most hand-rolled utilities in JavaScript now ship with the runtime, with an options bag, so the lodash or copy-pasted version is no longer the default answer.

Node.js 26.10.0, released September 22, adds util.debounce(fn, wait[, options]) and util.throttle(fn, limit, interval[, options]) to the core util module. Both landed as semver-minor additions.

The signatures carry an options bag, which is where the interesting behaviour lives rather than in the timers themselves. Read the docs for what that bag configures before assuming these are drop-in replacements for what you have.

Worth knowing because these two are among the most reimplemented functions in the ecosystem. They are a common reason a frontend project pulls in lodash, and they are the function every codebase has a slightly different copy of, usually with an edge case around the trailing call or the leading edge. Having them in the runtime removes both the dependency and the question of whose copy is correct.

The caveat is availability. This is Node 26, the Current line, not LTS. If you run Node 22 or 24 in production, util.debounce is not there yet, so reaching for it means tracking the backport or keeping your current implementation for now.

Also in this release: crypto.parsePKCS12() for reading PKCS#12 bundles, fs.openAsBlobSync(), util.markPromiseAsHandled(), and two perf_hooks additions, SlidingWindowHistogram and qrde analysis in Histogram. The histogram work and the util additions share an author and a performance focus.