Glossary
12 terms from "JavaScript async/await:事件循环与执行顺序详解." Look them up when you get stuck; the first mention in the text carries a hover definition.
| Term | Definition | Source |
|---|---|---|
| 调用栈(call stack) | JavaScript 当前正在运行的函数的后进先出列表;调用函数压入一帧,返回时弹出。 | MDN: JavaScript execution model |
| 单线程(single-threaded) | JavaScript 运行在一个线程上,一次只做一件事,不能并行运行两段代码。 | MDN: JavaScript execution model |
| run-to-completion | 每个任务都完整运行结束后其他任务才能开始的规则,因此同步代码总是先于被推迟的回调执行完。 | MDN: JavaScript execution model |
| 事件循环(event loop) | 盯着调用栈的机制:栈一空,就从队列里取出下一个回调来运行。 | MDN: JavaScript execution model |
| 任务队列(task queue) | 先进先出的队列(也叫回调队列或宏任务队列),setTimeout 这类被推迟的回调在这里等待运行。 | MDN: JavaScript execution model |
| task (macrotask) | 事件循环每次从任务队列取一个来运行的工作单元,例如 setTimeout 的回调或事件处理函数。 | MDN: JavaScript execution model |
| microtask | 在当前代码结束、栈空之后,但在下一个任务之前运行的短回调;promise 的回调就是微任务。 | MDN: Using microtasks in JavaScript with queueMicrotask() |
| 微任务队列(microtask queue) | 一个独立的、优先级更高的队列,会在事件循环运行下一个任务之前被彻底清空;正式地说它不是任务队列。 | HTML Living Standard: Event loops |
| setTimeout | 把回调安排到一段延迟之后运行的函数;延迟为 0 表示在事件循环靠后的一轮运行,而不是立刻。 | MDN: setTimeout() |
| Promise.prototype.then() | 在 promise 落定时安排回调(作为微任务)并返回新 promise 的方法;回调永远异步运行。 | MDN: Promise.prototype.then() |
| async function | 同步运行到第一个 await 并返回 promise 的函数;内部只要有 await,它就总是异步完成。 | MDN: async function |
| await | 只暂停自己所在 async 函数直到 promise 落定的操作符;它把控制权交回调用者,并把函数剩余部分作为微任务恢复。 | MDN: await |