Guest User

Untitled

a guest
Apr 20th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. // our cool promise of future; serialize promises
  2. function future(val){
  3. console.log("lala ", val);
  4. return new Promise((resolve, reject) => {
  5. setTimeout(resolve, 2000, val);
  6. })
  7. }
  8.  
  9. //1. await waits in this case
  10. (async () => {
  11. for (i in [1,2,3,4]) {
  12. const x = await future(i);
  13. console.log(x)
  14. }
  15. console.log('done')
  16. })()
  17.  
  18. /*
  19. lala 0
  20. Promise {<pending>}
  21. 0
  22. lala 1
  23. 1
  24. lala 2
  25. 2
  26. lala 3
  27. 3
  28. done
  29. */
  30.  
  31. //2. await won't wait in this case; fire and forget
  32. (() => {
  33. [1,2,3,4].forEach(async i => {
  34. let x = await future(i);
  35. console.log('-> ', x)
  36. });
  37. console.log("done")
  38. })()
  39.  
  40. /*
  41. lala 1
  42. lala 2
  43. lala 3
  44. lala 4
  45. done
  46. undefined
  47. -> 1
  48. -> 2
  49. -> 3
  50. -> 4
  51. */
  52.  
  53. // 3.make use of inherent parallelism
  54. (() => {
  55. Promise.all([1,2,3,4].map(i => future(i)))
  56. .then(result => result.forEach(x => console.log('-> ', x)));
  57. console.log("done")
  58. })()
  59.  
  60. /*
  61. lala 1
  62. lala 2
  63. lala 3
  64. lala 4
  65. done
  66. undefined
  67. -> 1
  68. -> 2
  69. -> 3
  70. -> 4
  71. */
Add Comment
Please, Sign In to add comment