Skip to content

hypercolor/promise-queue

Repository files navigation

Hypercolor Promise Queue

Table of Contents

Introduction

This tool is used by the team at Hypercolor Digital to loop through a list of promises and execute them in a queue. This is useful for when you have a list of promises that you want to execute in a specific order, but you don't want to wait for the previous promise to resolve before executing the next one. Additionally, this tool allows you to set a maximum number of concurrent promises that can be executed at any given time.

Installation

  • NPM
    • npm i @hypercolor/promise-queue
  • Yarn
    • yarn add @hypercolor/promise-queue

Usage

Example:

import { PromiseQueue } from '@hypercolor/promise-queue';

const exampleFunction = async (array: any[]) => {
    /*
    Loop through the array and execute a promise for each item.
    Accepts argument for maxConcurrent Promises to process.
    */
  
    //Void Returning Example:
    await new PromiseQueue(1).runall(array.map((item, index) => async () => {
        //do something with the item
        await doSomething(item);
        console.log("Processed item " + index + 1 + ' of ' + array.length + ' items.);
    }));
    
    // Return Array of Processed Items:
    const results = await new PromiseQueue(1).runall(array.map((item, index) => async () => {
        //do something with the item
        const result = doSomethingAndReturnResult(item);
        console.log("Processed item " + index + 1 + ' of ' + array.length + ' items.);
        return result;
    }));
};

More Information

Toolchain

  • TypeScript
  • p-Queue

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published