文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第2章 回调
在第 1 章里,我们探讨了与 JavaScript 异步编程相关的概念和术语。我们的关注点是理解处理所有事件 (异步函数调用)的单线程(一次一个)事件循环队列。我们还介绍了多个并发模式以不同的方式解释同时运行的事件链或“进程”(任务、函数调用,等等)之间的关系(如果有的话!)。
第 1 章的所有例子都是把函数当作独立不可分割的运作单元来使用的。在函数内部,语句以可预测的顺序执行(在编译器以上的层级!),但是在函数顺序这一层级,事件(也就是异步函数调用)的运行顺序可以有多种可能。
在所有这些示例中,函数都是作为回调 (callback)使用的,因为它是事件循环“回头调用”到程序中的目标,队列处理到这个项目的时候会运行它。
你肯定已经注意到了,到目前为止,回调是编写和处理 JavaScript 程序异步逻辑的最常用方式。确实,回调是这门语言中最基础的异步模式。
无数 JavaScript 程序,甚至包括一些最为高深和复杂的,所依赖的异步基础也仅限于回调(当然,它们使用了第 1 章介绍的各种并发交互模式)。回调函数是 JavaScript 的异步主力军,并且它们不辱使命地完成了自己的任务。
但是……回调函数也不是没有缺点。很多开发者因为更好的异步模式 promise(promise 也是“承诺、希望”的意思,此处一语双关)而激动不已。但是,只有理解了某种抽象的目标和原理,才能有效地应用这种抽象机制。
本章将深入探讨这两点,以便弄懂为什么更高级的异步模式(后续章节和附录 B 中将会讨论)是必需和备受期待的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论