Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. console.clear();
  2.  
  3. const loop = (arrayOfPromises, guard) => {
  4. if (arrayOfPromises.length && (!guard || guard(arrayOfPromises[0]))) {
  5. return arrayOfPromises.shift()().then(() => {
  6. return loop(arrayOfPromises, guard);
  7. })
  8. }
  9.  
  10. return Promise.resolve();
  11. }
  12.  
  13. const longOp = () => new Promise((resolve, reject) => {
  14. console.log('longOp');
  15. setTimeout(resolve, 200);
  16. });
  17.  
  18. const ops = Array.from(Array(10)).map(() => longOp);
  19.  
  20. loop(ops)
  21. .then(() => console.log('done'))
  22. .catch(() => console.log('whooops'))
  23. .finally(() => console.log('finally'))
  24. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement