Guest User

Untitled

a guest
Feb 19th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. async function makePizza(sauceType = 'red') {
  2.  
  3. let dough = await makeDough();
  4. let sauce = await makeSauce(sauceType);
  5. let cheese = await grateCheese(sauce.determineCheese());
  6.  
  7. dough.add(sauce);
  8. dough.add(cheese);
  9.  
  10. return dough;
  11. }
  12.  
  13. // |-------- dough --------> |-------- sauce --------> |-- cheese -->
  14.  
  15. async function makePizza(sauceType = 'red') {
  16.  
  17. let [ dough, sauce ] =
  18. await Promise.all([ makeDough(), makeSauce(sauceType) ]);
  19. let cheese = await grateCheese(sauce.determineCheese());
  20.  
  21. dough.add(sauce);
  22. dough.add(cheese);
  23.  
  24. return dough;
  25. }
  26.  
  27. // |-------- dough -------->
  28. // |-------- sauce --------> |-- cheese -->
  29.  
  30. function makePizza(sauceType = 'red') {
  31.  
  32. let doughPromise = makeDough();
  33. let saucePromise = makeSauce(sauceType);
  34. let cheesePromise = saucePromise.then(sauce => {
  35. return grateCheese(sauce.determineCheese());
  36. });
  37.  
  38. return Promise.all([ doughPromise, saucePromise, cheesePromise ])
  39. .then(([ dough, sauce, cheese ]) => {
  40.  
  41. dough.add(sauce);
  42. dough.add(cheese);
  43.  
  44. return dough;
  45. });
  46. }
  47.  
  48. // |--------- dough --------->
  49. // |---- sauce ----> |-- cheese -->
  50.  
  51. async function makePizza(sauceType = 'red') {
  52.  
  53. let doughPromise = makeDough();
  54. let saucePromise = makeSauce(sauceType);
  55.  
  56. let sauce = await saucePromise;
  57. let cheese = await grateCheese(sauce.determineCheese());
  58. let dough = await doughPromise;
  59.  
  60. dough.add(sauce);
  61. dough.add(cheese);
  62.  
  63. return dough;
  64. }
Add Comment
Please, Sign In to add comment