A promise is resolved inside a timer. When does the code after its await run?
let release;
const gate = new Promise((resolve) => {
release = resolve;
});
(async () => {
console.log("waiting");
const value = await gate;
console.log(value);
})();
setTimeout(() => {
console.log("timer: before resolve");
release("opened");
console.log("timer: after resolve");
}, 0);
Promise.resolve().then(() => console.log("microtask"));
The answer
Work out every line it logs, in order. Then check.
Checking your sign-in…