30 open-source projects similar to sindresorhus/delay, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
Promisify a callback-style function
Map over promises concurrently
Async is a JavaScript asynchronous flow library designed to manage the execution and coordination of asynchronous tasks in Node.js and the browser. It provides functional utilities to wrap, process, and orchestrate complex asynchronous workflows. The library distinguishes itself through a comprehensive task orchestrator that handles dependency graphs to resolve circular references and manages concurrent task queues. It includes a unification bridge that allows callback-style and promise-based functions to operate within the same execution interface. The project covers several primary capabil
Throttle promise-returning & async functions
Memoize promise-returning functions. Includes cache expire and prefetch.
Timeout a promise after a specified amount of time
Convert an Observable to a Promise
Bluebird is a JavaScript promise library designed for managing asynchronous operations with a custom promise implementation. It provides a framework for controlling promise lifecycles and orchestrating non-blocking programming patterns. The library distinguishes itself with an asynchronous debugging toolkit that captures long stack traces across asynchronous boundaries and a global handler for unhandled promise rejections. It includes a predicate-based error filtering system to target specific exception types and a mechanism for the deterministic cleanup of system resources. It covers a broa
p-queue is a JavaScript promise queue and concurrent task scheduler designed to limit the number of active asynchronous operations. It serves as an asynchronous rate limiter and promise lifecycle manager to prevent resource exhaustion. The project distinguishes itself through priority-based task scheduling and token-bucket rate limiting to control execution frequency. It integrates with abort signals for task cancellation and provides mechanisms to pause, resume, and clear pending operations. The tool covers broader traffic management capabilities including operation timeouts and concurrency
co is a JavaScript generator control flow library and non-blocking workflow engine. It manages asynchronous logic by using generators and promises to simulate a synchronous coding style. The project transforms generator functions into standard functions that return promises, ensuring compatibility with non-generator interfaces. It also functions as a promise-based asynchronous orchestrator that executes multiple operations concurrently through the recursive resolution of nested promise collections. The library provides high-level primitives for asynchronous flow control and non-blocking work
Debounce promise-returning & async functions
While a condition returns true, calls a function repeatedly, and then resolves the promise
RxJS is a library for reactive programming that provides a framework for composing asynchronous and event-based programs. It utilizes observable sequences to model data flows, allowing developers to manage complex sequences of events through a declarative programming interface. The library implements the observer pattern to facilitate decoupled communication between data producers and subscribers. By employing a lazy execution model, streams remain dormant until a consumer explicitly subscribes, at which point data production is triggered. This approach enables the construction of predictable
Limit the execution rate of a function
Get a stream as a string, Buffer, ArrayBuffer or array
Compose promise-returning & async functions into a reusable pipeline
Promisify an event by waiting for it to be emitted
q is a JavaScript promise library and asynchronous flow controller designed to manage non-blocking operations. It serves as a system for coordinating parallel tasks and sequencing asynchronous workflows through task chaining and error propagation. The library distinguishes itself with specialized debugging tools that capture long stack traces across asynchronous jumps and monitor unhandled rejections to prevent silent failures. It also functions as a remote object proxy, forwarding method calls to remote targets and routing responses back through promises. The project provides comprehensive
High-level streams library for Node.js and the browser
Same as mz, but wrap many popular modules rather than core API.
Node-core streams for userland
Modernize node.js to current ECMAScript specifications! node.js will not update their API to ES6+ for a while. This library is a wrapper for various aspects of node.js' API.
Convenience wrapper for ReadableStream, with an API lifted from "from" and "through2"