From b36f314f06fc91aa27aeddf670ae0bdf0a9e19ab Mon Sep 17 00:00:00 2001 From: kelechi Date: Mon, 29 Sep 2025 16:06:37 +0200 Subject: [PATCH] solved lab --- javascript/index.js | 132 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 127 insertions(+), 5 deletions(-) diff --git a/javascript/index.js b/javascript/index.js index 9f30552db..55ec5afa8 100644 --- a/javascript/index.js +++ b/javascript/index.js @@ -4,7 +4,8 @@ // 🚨🚨🚨 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)); @@ -23,18 +24,139 @@ 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}
  • `; + + getInstruction( + "mashedPotatoes", + 1, + (step1) => { + document.querySelector( + "#mashedPotatoes" + ).innerHTML += `
  • ${step1}
  • `; + + getInstruction( + "mashedPotatoes", + 2, + (step2) => { + document.querySelector( + "#mashedPotatoes" + ).innerHTML += `
  • ${step2}
  • `; + + getInstruction( + "mashedPotatoes", + 3, + (step3) => { + document.querySelector( + "#mashedPotatoes" + ).innerHTML += `
  • ${step3}
  • `; + + getInstruction( + "mashedPotatoes", + 4, + (step4) => { + document.querySelector( + "#mashedPotatoes" + ).innerHTML += `
  • ${step4}
  • `; + // Final message after the last step: + document.querySelector( + "#mashedPotatoes" + ).innerHTML += `
  • Mashed potatoes are ready!
  • `; + }, + (err) => console.error(err) + ); + }, + (err) => console.error(err) + ); + }, + (err) => console.error(err) + ); + }, + (err) => console.error(err) + ); + }, + (err) => console.error(err) +); // Iteration 2 - using promises // ... +obtainInstruction("steak", 0) + .then((step0) => { + document.querySelector("#steak").innerHTML += `
  • ${step0}
  • `; + return obtainInstruction("steak", 1); + }) + .then((step1) => { + document.querySelector("#steak").innerHTML += `
  • ${step1}
  • `; + return obtainInstruction("steak", 2); + }) + .then((step2) => { + document.querySelector("#steak").innerHTML += `
  • ${step2}
  • `; + return obtainInstruction("steak", 3); + }) + .then((step3) => { + document.querySelector("#steak").innerHTML += `
  • ${step3}
  • `; + return obtainInstruction("steak", 4); + }) + .then((step4) => { + document.querySelector("#steak").innerHTML += `
  • ${step4}
  • `; + return obtainInstruction("steak", 5); + }) + .then((step5) => { + document.querySelector("#steak").innerHTML += `
  • ${step5}
  • `; + return obtainInstruction("steak", 6); + }) + .then((step6) => { + document.querySelector("#steak").innerHTML += `
  • ${step6}
  • `; + return obtainInstruction("steak", 7); + }) + .then((step7) => { + document.querySelector("#steak").innerHTML += `
  • ${step7}
  • `; + // Final message after the last step: + document.querySelector("#steak").innerHTML += `
  • Steak is ready!
  • `; + }) + .catch((err) => console.error(err)); // Iteration 3 using async/await // ... +async function makeBroccoli() { + const list = document.querySelector("#broccoli"); + try { + const step0 = await obtainInstruction("broccoli", 0); + list.innerHTML += `
  • ${step0}
  • `; + + const step1 = await obtainInstruction("broccoli", 1); + list.innerHTML += `
  • ${step1}
  • `; + + const step2 = await obtainInstruction("broccoli", 2); + list.innerHTML += `
  • ${step2}
  • `; + + const step3 = await obtainInstruction("broccoli", 3); + list.innerHTML += `
  • ${step3}
  • `; + + const step4 = await obtainInstruction("broccoli", 4); + list.innerHTML += `
  • ${step4}
  • `; + + const step5 = await obtainInstruction("broccoli", 5); + list.innerHTML += `
  • ${step5}
  • `; + + const step6 = await obtainInstruction("broccoli", 6); + list.innerHTML += `
  • ${step6}
  • `; + + // Final message after the last step + list.innerHTML += `
  • Broccoli is ready!
  • `; + } catch (err) { + console.error(err); + } +} +makeBroccoli(); // Bonus 2 - Promise all -// ... \ No newline at end of file +// ...