Feb 25, 2017 · 1 min read
You could easily do what you want with only async/await:
async function makePizza(sauceType = 'red') {
// Spawn makeDough and makeSauce at "the same time"
let doughTask = makeDough();
let sauceTask = makeSauce(sauceType); // Wait for both dough and sauce to be done
let dough = await doughTask;
let sauce = await sauceTask; let cheese = await grateCheese(sauce.determineCheese());
dough.add(sauce);
dough.add(cheese);
return dough;
}