1.0.1 • Published 5 years ago

fast-resolve-promise v1.0.1

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

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

TypeDescriptionRequired
ArrayArray of PromisesYes

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

Event nameDescription
EventTypes.ResolvedNotified whenever a promise resolved
EventTypes.RejectedNotified whenever a promise rejected
EventTypes.OperationEndedNotified when all promises resolved/rejected