Skip to content

Latest commit

 

History

History
31 lines (27 loc) · 622 Bytes

README.md

File metadata and controls

31 lines (27 loc) · 622 Bytes

PromiseQueue

PromiseQueue is a basic class that allows you to limit concurrency of your async tasks.

const tasks = [
  {
    url: 'https://api.service.com',
    data: { id: 1 },
  },
  {
    url: 'https://api.service.com',
    data: { id: 2 },
  }
];

function wrapTask(payload) {
  const request = new Request(
    payload.url,
    { method: 'POST', body: JSON.stringify(payload.data) }
  );
  return fetch(request);
}

const queue = new PromiseQueue(CONCURRENCY, wrapTask, tasks);
return queue.process().then((result) => {
  console.log('All done!');
  console.log(result);
});

npm install && npm run test