Back to Explore

caolan/async

GitHub
1 watchersOpen source

Last release:

Async is a JavaScript utility module that provides functions for working with asynchronous code, originally designed for Node.js but usable in the browser as well. It offers callback-based helpers and supports use with modern JavaScript via an ESM/MJS version, and is useful for patterns like iterating over collections with concurrency limits.

Project status

  • Async (caolan/async) shows signs of ongoing work (latest upstream push on 2026-08-07), but the most recent tagged updates were much earlier (v3.2.6 on 2024-08-19, then v3.2.5 on 2023-11-03), so release cadence appears infrequent relative to today.
  • Update/release cadence for version tags looks like roughly yearly, with small patch releases and relatively light change sets, often dominated by build or distributed bundle adjustments.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v3.2.6

    v3.2.6 has no publisher release notes, but the diff shows a few real behavioral changes in the distributed bundle plus several developer workflow updates. The main customer-facing code impact appears to be improved error propagation behavior (asyncify) and adjustments to function-signature parsing logic in the distributed build.

  • v3.2.5

    Release v3.2.5 has no publisher-provided release notes. The diff is dominated by documentation/regenerated HTML and build config updates, with a small but real set of changes in the distributed async bundle (dist/async.js, dist/async.min.js) affecting UMD global resolution and error normalization behavior.

  • v3.2.4

    Release v3.2.4 was published on 2022-06-07, but the publisher did not include any release notes or change log details. As a result, there is no documented information here about new features, bug fixes, breaking changes, or security updates.

  • v2.0.0

    Async v2.0.0 introduces modularized imports (CommonJS per-function and an ES2015 module package via async-es), plus several new utilities like race, timeout, reflect/reflectAll, and mapValues. The release also standardizes callback behavior to follow Node-style continuation passing, removes some legacy behaviors, and makes notable performance and queue implementation changes.

    BreakingFeatures
  • v2.1.0

    v2.1.0 adds an optional synchronous errorFilter option to retry and retryable to let callers decide which errors should trigger another attempt. The release notes also claim performance-focused iteration optimizations for race, cargo, queue, and priorityQueue.

    Features
  • v2.1.2

    v2.1.2 contains an internal fix intended to prevent stack overflows in async's `detect`, `some`, and `every` helpers when processing large inputs. The release notes only describe the user-visible symptom, but the code shows a broader internal change to how early termination is implemented in the iteration machinery.

  • v2.1.3

    v2.1.3 focuses on reducing bundle size and improving `filter` performance for arrays. The code diff shows additional internal refactors around how lodash’s `baseRest` is handled and how callbacks are wrapped, plus a meaningful rewrite of `filter` that changes the implementation strategy and callback handling.

  • v2.1.5

    v2.1.5 focuses on bug fixes and internal cleanups. It addresses an async.auto listener collision issue, prevents a queue stack overflow scenario, and ensures some/every/find stop processing once the result is determined, with improved error messages.

  • v2.2.0

    v2.2.0 introduces new collection helpers, groupBy plus concurrency-limited variants groupByLimit and groupBySeries, and fixes a transform edge case related to a missing callback. The code changes also show additional non-feature modifications in the bundled dist output and documentation.

    Features
  • v2.3.0

    v2.3.0 adds automatic support for native ES2017 async functions in places where async.js expects Node-style (CPS) functions that use a callback. The implementation detects true native AsyncFunction values and converts them using asyncify so callbacks are invoked from the returned Promise/async return value.

    Features