mdn / content

The content behind MDN Web Docs
https://developer.mozilla.org
Other
8.88k stars 22.42k forks source link

Correction: At most one task is completed before microtasks are run #33327

Open vinhill opened 3 weeks ago

vinhill commented 3 weeks ago

MDN URL

https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide/In_depth

What specific section or headline is this issue about?

Event loops

What information was incorrect, unhelpful, or incomplete?

Each agent is driven by an event loop, which collects any user and other events, enqueuing tasks to handle each callback. It then runs any pending JavaScript tasks, then any pending microtasks, then performs any needed rendering and painting before looping again to check for pending tasks.

What did you expect to see?

I do not know what would be correct, but I expect something like

... It then runs at most one pending JavaScript task ...

Do you have any supporting links, references, or citations?

This is at least in conflict with the microtask guide

First, each time a task exits, the event loop checks to see if the task is returning control to other JavaScript code. If not, it runs all of the microtasks in the microtask queue.

Also, a code example in Firefox:

setTimeout(() => {
  console.log("a");
  queueMicrotask(() => console.log("c"))
})
setTimeout(() => console.log("b"))

result: "a c b"

Do you have anything more you want to share?

No response

MDN metadata

Page report details * Folder: `en-us/web/api/html_dom_api/microtask_guide/in_depth` * MDN URL: https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide/In_depth * GitHub URL: https://github.com/mdn/content/blob/main/files/en-us/web/api/html_dom_api/microtask_guide/in_depth/index.md * Last commit: https://github.com/mdn/content/commit/56c76424a5edb45f6716ac4ee48861dac8e7ae38 * Document last modified: 2023-08-04T07:12:32.000Z