Module 8: Async — 等一下的艺术
想象你去一家餐厅吃饭。你点了菜之后,服务员会怎么做?
A. 站在厨房门口一动不动,直到你的菜做好才去服务下一桌 ← 这叫同步(synchronous)
B. 把点单交给厨房,然后转身去招呼其他客人,等菜好了再端过来 ← 这叫异步(asynchronous)
如果服务员选了 A,这家餐厅大概开不了三天就倒闭了。但很多初学者写的代码,恰恰就是方案 A——程序傻等,什么都干不了。
为什么异步很重要?
在真实的编程世界里,很多操作是慢的:
- 发送网络请求(等服务器回应要几百毫秒甚至几秒)
- 读写文件(硬盘没有内存快)
- 数据库查询(可能要扫描几百万行数据)
- 用户交互(谁知道用户什么时候点按钮?)
如果你的程序在做这些事的时候傻等,用户看到的就是一个"卡死"的界面。所以我们需要异步编程——在等待的时候去干点别的。
这一章你会学到
| 主题 | 你会学到 |
|---|---|
| 回调函数 | 最原始的异步方式,以及为什么它会让人抓狂 |
| Promise | JS 解决回调地狱的武器 |
| async/await | 两种语言共同的"终极方案"——看起来像同步的异步代码 |
有趣的是……
Python 和 JavaScript 在异步编程上走了完全不同的路,但最终殊途同归——都采用了 async/await 语法。这个过程本身就是一段精彩的编程语言进化史。
问问 AI
在开始之前,问问 AI:"为什么 JavaScript 从诞生之日起就需要异步编程,而 Python 一开始并不需要?"
提示:这和它们各自的"出生地"有关——一个在浏览器里,一个在服务器上。
准备好了吗?让我们从最古老的异步方式——回调函数——开始!