Jonas Thoursie
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;
}