0.0.6 • Published 6 months ago

lz-promise-l v0.0.6

Weekly downloads
-
License
ISC
Repository
github
Last release
6 months ago

lz-promise-l

lz-promise-l is a promise execution controller that can automatically limit the number of simultaneous executions of promises.

how to use lz-promise-l

npm install lz-promise-l

demo

import PromiseLimit from 'lz-promise-l';

const limit = new PromiseLimit(
  // 限制并发数
  2, 
  // 所有resolve统一回调
  (param:any) => {
    console.log('all resolve', param, new Date().getTime());
  }, 
  // 所有reject统一回调
  (msg:any) => {
    console.log('all reject', msg, new Date().getTime());
});

const createPromise = (param:any) => {
  return () => new Promise((resolve, reject) => {
    setTimeout(() => {
      if(Math.random() > 0.5) {
        reject(param);
      }else{
        resolve(param);
      }
    }, 1000);
  });
}
const p1 = createPromise(' 1')
const p2 = createPromise(' 2')
const p3 = createPromise(' 3')
const p4 = createPromise(' 4')
const p5 = createPromise(' 5')

const LimitAdd = () => {
  limit.add(p1,(param)=>{
    console.log('resolve', param, new Date().getTime());
  },(error)=>{
    console.log('reject', error, new Date().getTime());
  });
  limit.add(p2,(param)=>{
    console.log('resolve', param, new Date().getTime());
  },(error)=>{
    console.log('reject', error, new Date().getTime());
  });
  limit.add(p3,(param)=>{
    console.log('resolve', param, new Date().getTime());
  },(error)=>{
    console.log('reject', error, new Date().getTime());
  });
  limit.add(p4,(param)=>{
    console.log('resolve', param, new Date().getTime());
  },(error)=>{
    console.log('reject', error, new Date().getTime());
  });
  limit.add(p5,(param)=>{
    console.log('resolve', param, new Date().getTime());
  },(error)=>{
    console.log('reject', error, new Date().getTime());
  });
}
LimitAdd();

setTimeout(()=>{
  LimitAdd();
},5000);
0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

7 months ago

0.0.1

7 months ago