Challenge 1 — Solution Task: Without running it, write down (or comment) the exact console.log order for this code, then run it to check: console.log("1"); setTimeout(() => console.log("2"), 0); Promise.resolve().then(() => console.log("3")); Promise.resolve().then(() => console.log("4")); console.log("5"); console.log("1"); setTimeout(() => console.log("2"), 0); Promise.resolve().then(() => console.log("3")); Promise.resolve().then(() => console.log("4")); console.log("5"); Expected output: 1 5 3 4 2 Notes: - "1" and "5" are the only two purely synchronous console.log calls here, so they run first and in the order they appear in the code, before anything asynchronous gets a turn. - Both .then() callbacks are microtasks, and the ENTIRE microtask queue drains before the next macrotask — so "3" and "4" both run, in the order they were queued, before "2" (the setTimeout macrotask) gets a chance. - "2" runs last specifically because setTimeout schedules a macrotask, and macrotasks always wait for the microtask queue to be completely empty first, regardless of the 0ms delay.