← [ BACK_TO_NOTES ]

JavaScript 异步与并发 MOC

Promise、async/await、事件循环与宿主异步边界的导航。

#moc #growing #dev #javascript

[!info] related notes

JavaScript 异步与并发 MOC

知识总览

filters:
  and:
    - 'file.ext == "md"'
    - 'file.inFolder("z")'
    - 'this.file.links.contains(file)'
    - 'file.path != this.file.path'
formulas:
  knowledge: 'file.asLink(title)'
properties:
  formula.knowledge:
    displayName: 知识
  note.description:
    displayName: Description
  note.mastery:
    displayName: Mastery
views:
  - type: table
    name: 知识总览
    order:
      - formula.knowledge
      - note.description
      - note.mastery
    columnSize:
      formula.knowledge: 280
      note.description: 760
      note.mastery: 56

这个概念为什么出现

JS 的“并发”不是多线程默认叙事,而是事件循环上的任务调度。没有这张地图,async 代码会变成不可预测的时序迷宫。

从这里开始

  1. 异步总览
  2. Promise
  3. Promise 与 async
  4. 浏览器环境下的 JS Event Loop
  5. JS 事件循环深入

任务调度

继续深入

自测题

  1. 为什么不能用 sleep 假装同步锁?
  2. 浏览器在一个 task 结束后为什么要执行 microtask checkpoint?
答案
  1. sleep 只推迟执行,不提供互斥与内存可见性语义,还会阻塞事件循环。
  2. 当前 task 的 JavaScript 返回且调用栈为空时,浏览器执行 microtask checkpoint,持续清空已排队的 microtasks;之后浏览器才可能渲染并选择下一个 task。
创建于 2026/7/15 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本