import PromisePool from './PromisePool';

const pool = new PromisePool(3);

const urls = ["https://api.example.com/data1", "https://api.example.com/data2", "https://api.example.com/data3"];
urls.forEach(url => {
  pool.add(() => fetch(url).then(r => r.json()));
});

const { results, errors } = await pool.execute((completed, total) => {
  console.log(`Progress: ${completed}/${total}`);
});

console.log(`Completed: ${results.length} successful, ${errors.length} errors`);