@axetroy/async-queue
TypeScript icon, indicating that this package has built-in type declarations

0.1.4 • Public • Published

async-queue.js

Badge LICENSE Node npm version

A library to limit the number of concurrent asynchronous tasks.

Installation

npm install @axetroy/async-queue --save

Usage

// import via esm
import { AsyncQueue } from "@axetroy/async-queue";

// import via cjs
const { AsyncQueue } = require("@axetroy/async-queue");
// import via esm
import { AsyncQueue } from "@axetroy/async-queue";

const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

const queue = new AsyncTaskQueue({ concurrency: 2 });
// Add task to the queue
queue.enqueue(() => delay(1000).then(() => console.log("Task 1 completed")));
queue.enqueue(() => delay(500).then(() => console.log("Task 2 completed")));
queue.enqueue(() => delay(300).then(() => console.log("Task 3 completed")));
queue.enqueue(() => delay(400).then(() => console.log("Task 4 completed")));

// Wait for all tasks to complete
await queue.waitForAll();

License

The Anti 996 License

Readme

Keywords

Package Sidebar

Install

npm i @axetroy/async-queue

Weekly Downloads

1

Version

0.1.4

License

Anti 996

Unpacked Size

27.4 kB

Total Files

9

Last publish

Collaborators

  • axetroy