Skip to content

Run promises in parallel and get notified whenever any of promises resolved

Notifications You must be signed in to change notification settings

jackthecodemonkey/fast-resolve-promises

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Tiny lib that sends a notification whenever any of promise is resolved from a list of Promises

It can be useful for

  • A batch call
  • You want to run your promises in parallel and don't care the order of resolved promises but still want to get notified for resolved ones

Sample usage

import FastResolvePromises, { EventTypes } from './fastresolvePromise';

const test = FastResolvePromises(
  [
    new Promise((resolve, reject) => { setTimeout(() => { resolve('second') }, 1500) }),
    new Promise((resolve, reject) => { setTimeout(() => { resolve('third') }, 2000) }),
    new Promise((resolve, reject) => { setTimeout(() => { resolve('first') }, 500) }),
    new Promise((resolve, reject) => { setTimeout(() => { resolve('fourth') }, 3000) }),
  ],
);

test
  .on(EventTypes.Resolved, (str) => {
      // this is called whenever a promise is resolved
      // in this example, this callback will be called 4 times
      // 1. str => 'first'
      // 2. str => 'second'
      // 3. str => 'third'
      // 4. str => 'fourth'
  })
  .on(EventTypes.OperationEnded, ({ resolved, rejected }) => {
    // this is called when every promises finished 
    console.log('resolved: ', resolved); // number of resolved 
    console.log('rejected: ', rejected); // number of rejected
  })
  .on(EventTypes.Rejected, (error) => {
   // this is called whenever there is rejected promise
    console.log(error);
  });

API

FastResolvePromises

Param

Type Description Required
Array Array of Promises Yes

The function returns an event object which has on method that you can listen events

Event name Description
EventTypes.Resolved Notified whenever a promise resolved
EventTypes.Rejected Notified whenever a promise rejected
EventTypes.OperationEnded Notified when all promises resolved/rejected

About

Run promises in parallel and get notified whenever any of promises resolved

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published