Metody jako Promise.all
, Promise.allSettled
, Promise.race
a zbytek je opravdu vynikající pro správu více Promises, což našim aplikacím umožňuje využívat asynchronní a výkonné. Někdy však může být omezení počtu souběžných operací užitečné, například omezení rychlosti nebo prostě nechcete server vystavovat velkému stresu.
Zadejte jednoduchý nástroj pro omezení souběžnosti Promise:pool
!
import pool from '@ricokahler/pool'; async function getQuotes() { const quotes = await pool({ collection: [1, 2, 3, 4, 5], maxConcurrency: 2, // Limit 2 requests at a time task: async (symbol) => { const response = await fetch(`/quotes/${symbol}`); const json = await response.json(); return json; }, }); console.log(quotes); // Array of the 5 quotes }
pool
umožňuje určit, kolik požadavků se má spustit současně. Pokud není zadána žádná hodnota souběžnosti, pool
funguje jako Promise.all
.
Souběžnost je důležitý problém s asynchronní povahou JavaScriptu, takže je důležité mít metodu pro jejich sdružování a omezení souběžných akcí.