Hint
Promise .then callbacks are ALWAYS asynchronous — guaranteed by the spec, even for already-resolved promises.
let x = 0;
Promise.resolve().then(() => { x = 1; });
console.log(x);0
Explanation: Even though Promise.resolve() is already resolved, .then is always async (microtask). x is still 0 when synchronously logged.
Key Insight: Promise .then callbacks are ALWAYS asynchronous — guaranteed by the spec, even for already-resolved promises.