JavaScript 是单线程运行,异步操作特别重要. 只要用到引擎之外的功能,就需要跟外部交互,从而形成异步操作.由于异步操作实在太多,JavaScript 不得不提供很多异步语法.这就好比,有些人老是受打击, 他的抗打击能力必须变得很强,否则他就完蛋了. Node 的异步语法比浏览器更复杂,因为它可以跟内核对话,不得不搞了一个专门的库 libuv 做这件事.这个库负责各种回调函数的执行时间,毕竟异步任务最后还是要回到主线程,一个个排队执行. 为了协调异步任务,Node 居然提供了四个定时器,…