# 异步编程(1):回调函数
# 什么叫「异步」
- “异步”,就是一个任务分成两段,先执行第一段,转而执行其他任务,等做完后再回来执行剩下的第二段。这种不连续的执行,就叫异步。
- “同步”,连续的执行的任务就是同步。由于连续执行,不能插入其他任务,类似操作系统从硬盘读取文件所花费的时间,就只能等待,效率很低。
异步编程的语法目标,就是 “让它更像同步编程”
。
# 回调函数→事件发布/订阅
Q:什么是回调函数?
A:js异步编程的实现就是回调函数。回调函数就是把任务的第二段单独写在一个callback函数中,等到重新执行该任务时直接调用这个callback函数。
Q:回调函数有什么问题?
A:回调函数本身没有问题,问题在于多层回调嵌套所导致的
“回调地狱”
。代码不是纵向发展而是横向发展的,杂乱不好管理。Q:解决途径?
A:事件发布订阅就是为了解决回调嵌套问题的。传送门EventEmitter实现