Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. // Promise.all polyfill
  2. function all(promises) {
  3. return new Promise(function(resolve,reject) {
  4. var count = promises.length
  5. var result = []
  6. var checkDone = function() { if (--count === 0) resolve(result) }
  7. promises.forEach(function(p, i) {
  8. p.then(function(x) { result[i] = x }, reject).then(checkDone)
  9. })
  10. })
  11. }
  12.  
  13. // delay helper for creating promises that resolve after ms milliseconds
  14. function delay(ms, value) {
  15. return new Promise(function(pass) {
  16. setTimeout(pass, ms, value)
  17. })
  18. }
  19.  
  20. // basic boilerplate to check an answer
  21. function checkAnswer(promises) {
  22. all(promises).then(
  23. function(xs) { console.log(xs) },
  24. function(err) { console.log(err.message) }
  25. )
  26. }
  27.  
  28. // resolved promises wait for one another but ensure order is kept
  29. checkAnswer([
  30. delay(100, 'a'),
  31. delay(200, 'b'),
  32. delay(50, 'c'),
  33. delay(1000, 'd')
  34. ])
  35.  
  36.  
  37. //////////////////
  38.  
  39. Var p1 = new Promise();
  40. Var p2 = new Promise();
  41. Var p3 = Promise.all([p1, p2])
  42. .then((result) => console.log())
  43.  
  44.  
  45. Promise.all
  46. Var p1 = new Promise();
  47. Var p2 = new Promise();
  48. Var p3 = Promise.all([p1, p2])
  49. .then((result) => console.log())
  50.  
  51. Function promiseAll(promiseArrary) {
  52. Cosnt result = promiseArrary.reduce((acc, promiseInstance, index) => {
  53. promiseInstance.then((result) => {
  54. promiseResponse = result;
  55. result = acc.push(promiseResponse );
  56. })
  57. .error(err => {
  58. result = acc.push(err );
  59. })
  60. return result;
  61. }), [])
  62. return result;
  63. }
  64.  
  65. Var p4 = promiseAll([p1, p2]);
  66. // p4 [‘Fetch failed’, 43 ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement