Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const waait = i => new Promise(res => setTimeout(() => { return res(i); }, 2000));
- const batchedPromiseAll = async (array) => {
- let requests = array.slice(0);
- let results = [];
- let processBatch = async (chunks, results) => {
- let curr;
- try {
- curr = await Promise.all(chunks.map(prop => waait(prop)));
- results.push(curr);
- console.log(curr);
- } catch (err) {
- throw err
- }
- return curr !== undefined && requests.length
- ? processBatch(requests.splice(0, 5), results)
- : results
- }
- const res = await processBatch(requests.splice(0, 5), results)
- console.log(JSON.stringify(res, null, 2));
- }
- const app = async () => {
- const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];
- await batchedPromiseAll(array);
- }
- app();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement