Challenge 2 — Solution Task: Write an async function logSteps() that logs "1", then awaits a Promise.resolve(), then logs "2". Call logSteps(), then immediately log "3" right after the call (not inside it). Predict and then confirm the actual output order. async function logSteps() { console.log("1"); await Promise.resolve(); console.log("2"); } logSteps(); console.log("3"); Expected output: 1 3 2 Notes: - logSteps() runs synchronously up to (and including) console.log ("1") — that part is no different from calling an ordinary function, since nothing asynchronous has happened yet at that point. - The moment await Promise.resolve() is reached, the REST of logSteps (console.log("2")) is scheduled as a microtask and execution returns immediately to whatever called logSteps() — that is why console.log("3") runs before "2", even though "3" appears AFTER the call to logSteps() in the source code. - "2" still runs before any setTimeout-based macrotask would, since it's a microtask — this challenge only has one async chain, so there's no macrotask here to compare it against directly.