Guest User

Untitled

a guest
Jun 22nd, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. const pr = (shouldResolve = true, time = 5000) => {
  2. return new Promise((resolve, reject) => {
  3. setTimeout(() => {
  4. console.log(`this promise is ${shouldResolve}`);
  5. if (shouldResolve) {
  6. resolve();
  7. } else {
  8. reject(new Error('failed'));
  9. }
  10. }, time);
  11. });
  12. };
  13.  
  14. const prs = [() => pr(true), () => pr(false, 10000), () => pr(true)];
  15. function synchronousPromiseResolver(promises) {
  16. const copyOfPromises = [...promises];
  17. const promisesAnswer = [];
  18.  
  19. return new Promise((resolve, reject) => {
  20. const prResolver = function(promise) {
  21. if (!promises.length || !promise) {
  22. return resolve(promisesAnswer);
  23. }
  24. promise()
  25. .then(data => {
  26. promisesAnswer.push(data);
  27. prResolver(copyOfPromises.shift());
  28. })
  29. .catch(err => {
  30. reject(err);
  31. });
  32. };
  33. prResolver(copyOfPromises.shift());
  34. });
  35. }
  36. synchronousPromiseResolver(prs);
Add Comment
Please, Sign In to add comment