cf.completefrontend

Predict the outputMedium

A promise is resolved inside a timer. When does the code after its await run?

What does this log?
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…