diff --git a/javascript/index.js b/javascript/index.js index 9f30552db..a271970e8 100644 --- a/javascript/index.js +++ b/javascript/index.js @@ -4,37 +4,160 @@ // 🚨🚨🚨 Comment out the below code before you start working on the code // Out of sync - getInstruction("mashedPotatoes", 0, (step1) => { +getInstruction( + "mashedPotatoes", + 0, + (step1) => { document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step1}
  • `; - }, (error) => console.log(error)); - - getInstruction("mashedPotatoes", 1, (step2) => { + }, + (error) => console.log(error) +); + +getInstruction( + "mashedPotatoes", + 1, + (step2) => { document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step2}
  • `; - }, (error) => console.log(error)); - - getInstruction("mashedPotatoes", 2, (step3) => { + }, + (error) => console.log(error) +); + +getInstruction( + "mashedPotatoes", + 2, + (step3) => { document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step3}
  • `; - }, (error) => console.log(error)); - - getInstruction("mashedPotatoes", 3, (step4) => { + }, + (error) => console.log(error) +); + +getInstruction( + "mashedPotatoes", + 3, + (step4) => { document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step4}
  • `; - }, (error) => console.log(error)); - - getInstruction("mashedPotatoes", 4, (step5) => { + }, + (error) => console.log(error) +); + +getInstruction( + "mashedPotatoes", + 4, + (step5) => { document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step5}
  • `; document.querySelector("#mashedPotatoesImg").removeAttribute("hidden"); - }, (error) => console.log(error)); - - + }, + (error) => console.log(error) +); // Iteration 1 - using callbacks -// ... +getInstruction("mashedPotatoes", 0, (step0) => { + document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step0}
  • `; + // ... Your code here +}); // Iteration 2 - using promises -// ... +obtainInstruction("steak", 0) + .then((step0) => { + document.querySelector("#steak").innerHTML += `
  • ${step0}
  • `; + obtainInstruction("steak", 1).then((step1) => { + document.querySelector("#steak").innerHTML += `
  • ${step1}
  • `; + obtainInstruction("steak", 2).then((step2) => { + document.querySelector("#steak").innerHTML += `
  • ${step2}
  • `; + obtainInstruction("steak", 3).then((step3) => { + document.querySelector("#steak").innerHTML += `
  • ${step3}
  • `; + obtainInstruction("steak", 4).then((step4) => { + document.querySelector("#steak").innerHTML += `
  • ${step4}
  • `; + obtainInstruction("steak", 5).then((step5) => { + document.querySelector("#steak").innerHTML += `
  • ${step5}
  • `; + obtainInstruction("steak", 6).then((step6) => { + document.querySelector( + "#steak" + ).innerHTML += `
  • ${step6}
  • `; + obtainInstruction("steak", 7) + .then((step7) => { + document.querySelector( + "#steak" + ).innerHTML += `
  • ${step7}
  • `; + }) + .then(() => { + document.querySelector( + "#steak" + ).innerHTML += `
  • Stake is ready!
  • `; + document + .querySelector("#steakImg") + .removeAttribute("hidden"); + }); + }); + }); + }); + }); + }); + }); + }) + .catch((error) => console.log(error)); // Iteration 3 using async/await -// ... +async function makeBroccoli() { + // ... Your code here + try { + await obtainInstruction("broccoli", 0).then( + (step0) => + (document.querySelector("#broccoli").innerHTML += `
  • ${step0}
  • `) + ); + await obtainInstruction("broccoli", 1).then( + (step1) => + (document.querySelector("#broccoli").innerHTML += `
  • ${step1}
  • `) + ); + await obtainInstruction("broccoli", 2).then( + (step2) => + (document.querySelector("#broccoli").innerHTML += `
  • ${step2}
  • `) + ); + await obtainInstruction("broccoli", 3).then( + (step3) => + (document.querySelector("#broccoli").innerHTML += `
  • ${step3}
  • `) + ); + await obtainInstruction("broccoli", 4).then( + (step4) => + (document.querySelector("#broccoli").innerHTML += `
  • ${step4}
  • `) + ); + await obtainInstruction("broccoli", 5).then( + (step5) => + (document.querySelector("#broccoli").innerHTML += `
  • ${step5}
  • `) + ); + await obtainInstruction("broccoli", 6).then( + (step6) => + (document.querySelector("#broccoli").innerHTML += `
  • ${step6}
  • `) + ); + document.querySelector( + "#broccoli" + ).innerHTML += `
  • Broccoli is ready!
  • `; + document.querySelector("#broccoliImg").removeAttribute("hidden"); + } catch (error) { + console.log(error); + } +} + +makeBroccoli(); // Bonus 2 - Promise all -// ... \ No newline at end of file +const step0 = obtainInstruction("brusselsSprouts", 0); +const step1 = obtainInstruction("brusselsSprouts", 1); +const step2 = obtainInstruction("brusselsSprouts", 2); +const step3 = obtainInstruction("brusselsSprouts", 3); +const step4 = obtainInstruction("brusselsSprouts", 4); +const step5 = obtainInstruction("brusselsSprouts", 5); +const step6 = obtainInstruction("brusselsSprouts", 6); +const step7 = obtainInstruction("brusselsSprouts", 7); +const step8 = "Brussels sprouts are ready!"; +Promise.all([step0, step1, step2, step3, step4, step5, step6, step7, step8]) + .then((result) => { + result.map( + (step) => + (document.querySelector( + "#brusselsSprouts" + ).innerHTML += `
  • ${step}
  • `) + ); + document.querySelector("#brusselsSproutsImg").removeAttribute("hidden"); + }) + .catch((error) => console.log(error));