Back to articles
πŸš€ JavaScript Async/Await vs `.then()` : The Microtask & Event Loop Secret

πŸš€ JavaScript Async/Await vs `.then()` : The Microtask & Event Loop Secret

via Dev.to Webdevkeshav Sandhu

Ever seen this and wondered why the output changes just by reordering lines? async function hi () { return " there " ; } // Version A const waitedhi = await hi (); console . log ( waitedhi ); hi (). then ( res => console . log ( res )); console . log ( " end " ); vs // Version B hi (). then ( res => console . log ( res )); const waitedhi = await hi (); console . log ( waitedhi ); console . log ( " end " ); πŸ‘€ Same code… different output. Why? 🧠 The Hidden Mechanism: Microtasks Both await and .then() use Promises , and both schedule work in the microtask queue . πŸ‘‰ Key rule: Microtasks run in the order they are added (FIFO) ⚑ What await really does await hi (); is roughly: hi (). then ( result => { // rest of your code }); So: .then() β†’ schedules a microtask await β†’ schedules a microtask (continuation) πŸ”₯ Why order matters Version A await schedules continuation resumes β†’ logs "there" .then() schedules another microtask "end" logs .then() runs βœ… Output: there end there Version B .then() β†’ m

Continue reading on Dev.to Webdev

Opens in a new tab

Read Full Article
2 views

Related Articles