diff --git a/index.html b/index.html
index c15c92dce..05dc6d822 100644
--- a/index.html
+++ b/index.html
@@ -10,16 +10,16 @@
diff --git a/javascript/index.js b/javascript/index.js
index 9f30552db..ac6df5c98 100644
--- a/javascript/index.js
+++ b/javascript/index.js
@@ -4,37 +4,189 @@
// 🚨🚨🚨 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", 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", 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", 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", 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", 4, (step5) => {
+// document.querySelector("#mashedPotatoes").innerHTML += `${step5}`;
+// document.querySelector("#mashedPotatoesImg").removeAttribute("hidden");
+// }, (error) => console.log(error));
// Iteration 1 - using callbacks
-// ...
+//
+// getInstruction(food, step, callback, errorCallback)
+//
+
+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}`;
+
+ }, () => {
+ console.log('error preparing mashedPotatoes step 4....');
+
+ })
+
+ }, () => {
+ console.log('error preparing mashedPotatoes step 3....');
+
+ })
+ }, () => {
+ console.log('error preparing mashedPotatoes step 2....');
+
+ })
+ }, () => {
+ console.log('error preparing mashedPotatoes step 1....');
+
+ })
+}, () => {
+ console.log('error preparing mashedPotatoes step 0....');
+})
+
+
+
// Iteration 2 - using promises
// ...
+// function obtainInstruction(food, step)
+//
+ 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}`;
+ return obtainInstruction('steak', 8);
+ })
+
+ .catch(function(error) {});
+
+
+
+
+
// Iteration 3 using async/await
// ...
+// async function makeBroccoli()
+//
+ async function makeBroccoli() {
+ try{
+
+ 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("#broccoli").innerHTML += `Broccoli is ready!`;
+ } catch(error) {
+ console.log(error);
+ }
+ }
+
+ makeBroccoli();
+
// Bonus 2 - Promise all
-// ...
\ No newline at end of file
+// function makeBrusselsSprouts()
+//
+
+function makeBrusselsSprouts() {
+ const steps = [
+ obtainInstruction('brusselsSprouts', 0),
+ obtainInstruction('brusselsSprouts', 1),
+ obtainInstruction('brusselsSprouts', 2),
+ obtainInstruction('brusselsSprouts', 3),
+ obtainInstruction('brusselsSprouts', 4),
+ obtainInstruction('brusselsSprouts', 5),
+ obtainInstruction('brusselsSprouts', 6),
+ obtainInstruction('brusselsSprouts', 7)
+ ];
+
+ Promise.all(steps)
+ .then((allSteps) => {
+ // allSteps es un array con los textos de cada instrucción
+ allSteps.forEach((step) => {
+ document.querySelector("#brusselsSprouts").innerHTML += `${step}`;
+ });
+ // mensaje final
+ document.querySelector("#brusselsSprouts").innerHTML += `Brussels sprouts are ready!`;
+ })
+ .catch((error) => console.log(error));
+}
+
+makeBrusselsSprouts();
\ No newline at end of file
diff --git a/javascript/obtainInstruction.js b/javascript/obtainInstruction.js
index 66e18b933..4fcf58cee 100644
--- a/javascript/obtainInstruction.js
+++ b/javascript/obtainInstruction.js
@@ -9,6 +9,7 @@ function obtainInstruction(food, step) {
// Get the instruction string
let instruction;
+
if (food === "mashedPotatoes") {
instruction = mashedPotatoes[step];
}