diff --git a/02-async-js/hard (promises)/3-promise-all.js b/02-async-js/hard (promises)/3-promise-all.js index 5028a009..a8533bd4 100644 --- a/02-async-js/hard (promises)/3-promise-all.js +++ b/02-async-js/hard (promises)/3-promise-all.js @@ -6,17 +6,47 @@ function waitOneSecond() { - + return new Promise((resolve) => { + setTimeout(() => { + console.log("Resolved after 1 second"); + resolve(); + }, 1000); + }); } function waitTwoSecond() { - + return new Promise((resolve) => { + setTimeout(() => { + console.log("Resolved after 2 seconds"); + resolve(); + }, 2000); + }); } function waitThreeSecond() { - + return new Promise((resolve) => { + setTimeout(() => { + console.log("Resolved after 3 seconds"); + resolve(); + }, 3000); + }); } -function calculateTime() { +async function calculateTime() { + const startTime = Date.now(); // Record the start time + + // Execute each function sequentially + // await waitOneSecond(); + // await waitTwoSecond(); + // await waitThreeSecond(); + + // Excutes each function using Promise.all + + await Promise.all([waitOneSecond(),waitTwoSecond(),waitThreeSecond()]); + + const endTime = Date.now(); // Record the end time + const elapsedTime = endTime - startTime; // Calculate elapsed time in milliseconds + console.log(`Total time waited: ${elapsedTime / 1000} seconds`); +} -} \ No newline at end of file +calculateTime(); // Call calculateTime function to demonstrate