From 7f22933e9789a4aaacb4d972b0f57f3ebfb3ff75 Mon Sep 17 00:00:00 2001 From: Pablo Cabrera Date: Thu, 4 Sep 2025 20:36:39 +0200 Subject: [PATCH] solved lab --- javascript/index.js | 137 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 117 insertions(+), 20 deletions(-) diff --git a/javascript/index.js b/javascript/index.js index 9f30552db..ebf6e10e6 100644 --- a/javascript/index.js +++ b/javascript/index.js @@ -4,37 +4,134 @@ // 🚨🚨🚨 Comment out the below code before you start working on the code // Out of sync - getInstruction("mashedPotatoes", 0, (step1) => { - document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step1}
  • `; - }, (error) => console.log(error)); + //getInstruction("mashedPotatoes", 0, (step1) => { + //document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step1}
  • `; + //}, (error) => console.log(error)); - getInstruction("mashedPotatoes", 1, (step2) => { - document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step2}
  • `; - }, (error) => console.log(error)); + //getInstruction("mashedPotatoes", 1, (step2) => { + //document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step2}
  • `; + //}, (error) => console.log(error)); - getInstruction("mashedPotatoes", 2, (step3) => { - document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step3}
  • `; - }, (error) => console.log(error)); + //getInstruction("mashedPotatoes", 2, (step3) => { + //document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step3}
  • `; + //}, (error) => console.log(error)); - getInstruction("mashedPotatoes", 3, (step4) => { - document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step4}
  • `; - }, (error) => console.log(error)); + //getInstruction("mashedPotatoes", 3, (step4) => { + //document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step4}
  • `; + //}, (error) => console.log(error)); - getInstruction("mashedPotatoes", 4, (step5) => { - document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step5}
  • `; - document.querySelector("#mashedPotatoesImg").removeAttribute("hidden"); - }, (error) => console.log(error)); + //getInstruction("mashedPotatoes", 4, (step5) => { + //document.querySelector("#mashedPotatoes").innerHTML += `
  • ${step5}
  • `; + //document.querySelector("#mashedPotatoesImg").removeAttribute("hidden"); + //}, (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}
  • ` + document.querySelector("#mashedPotatoes").innerHTML += `
  • Mashed potatoes are ready!
  • ` + document.querySelector("#mashedPotatoesImg").removeAttribute("hidden"); + }, (error) => console.log(error)); + + }, (error) => console.log(error)); + + }, (error) => console.log(error)); + + }, (error) => console.log(error)); + +}, (error) => console.log(error)); // 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}
  • ` + document.querySelector("#steakImg").removeAttribute("hidden"); + document.querySelector("#steak").innerHTML += `
  • Steak is ready!
  • ` + }) + .catch( (error) => console.log(error)); // Iteration 3 using async/await -// ... +async function makeBroccoli() { + const step0 = await obtainInstruction('broccoli', 0); + document.querySelector("#broccoli").innerHTML += `
  • ${step0}
  • ` + const step1 = await obtainInstruction('broccoli', 1); + document.querySelector("#broccoli").innerHTML += `
  • ${step1}
  • ` + const step2 = await obtainInstruction('broccoli', 2); + document.querySelector("#broccoli").innerHTML += `
  • ${step2}
  • ` + const step3 = await obtainInstruction('broccoli', 3); + document.querySelector("#broccoli").innerHTML += `
  • ${step3}
  • ` + const step4 = await obtainInstruction('broccoli', 4); + document.querySelector("#broccoli").innerHTML += `
  • ${step4}
  • ` + const step5 = await obtainInstruction('broccoli', 5); + document.querySelector("#broccoli").innerHTML += `
  • ${step5}
  • ` + const step6 = await obtainInstruction('broccoli', 6); + document.querySelector("#broccoli").innerHTML += `
  • ${step6}
  • ` + document.querySelector("#broccoliImg").removeAttribute("hidden"); + document.querySelector("#broccoli").innerHTML += `
  • Broccoli is ready!
  • ` +} + +// Llamar la función para que se ejecute +makeBroccoli(); + // Bonus 2 - Promise all -// ... \ No newline at end of file +Promise.all([ + obtainInstruction('brusselsSprouts', 0), + obtainInstruction('brusselsSprouts', 1), + obtainInstruction('brusselsSprouts', 2), + obtainInstruction('brusselsSprouts', 3), + obtainInstruction('brusselsSprouts', 4), + obtainInstruction('brusselsSprouts', 5), + obtainInstruction('brusselsSprouts', 6), + obtainInstruction('brusselsSprouts', 7) +]) +.then((steps) => { + // steps es un array con todos los resultados en orden + steps.forEach((step, index) => { + document.querySelector("#brusselsSprouts").innerHTML += `
  • ${step}
  • ` + }); + document.querySelector("#brusselsSproutsImg").removeAttribute("hidden"); + document.querySelector("#brusselsSprouts").innerHTML += `
  • Brussels sprouts are ready!
  • ` +}) +.catch((error) => console.log(error)); \ No newline at end of file