Guest User

Untitled

a guest
Jan 18th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. function sequence(list, results, resolve, reject) {
  2. if (!results) {
  3. return new Promise((resolve, reject) => sequence(list, [], resolve, reject));//first time
  4. } else {
  5. if (!results){
  6. results = [];//one time
  7. }
  8. if (list.length == 0) {
  9. return resolve(results);//last time
  10. } else {
  11. list[0]().then(result => { //each time
  12. results.push(result);
  13. list.splice(0, 1);
  14. sequence(list, results, resolve, reject);
  15. }).catch(err => {
  16. reject(err);
  17. });
  18. }
  19. }
  20. }
  21.  
  22. //Testing
  23. /*
  24. sequence([
  25. () => new Promise((resolve, reject) => {
  26. setTimeout(() => {
  27. console.log('Foo');
  28. resolve('Foo rocks!');
  29. },2000);
  30. }),
  31. () => new Promise((resolve, reject) => {
  32. setTimeout(() => {
  33. console.log('Bar');
  34. resolve('Bar completed');
  35. },3000);
  36. })
  37. ]).then(results => {
  38. console.log('YES!', results)
  39. })
  40. */
Add Comment
Please, Sign In to add comment