当前位置:嗨网首页>书籍在线阅读

18-小结

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

14.5 小结

全面深入地理解异步编程中的复杂性,以及为了管理它所引入的各种机制—它们是理解现代JavaScript开发的关键。本章中学到了:

  • JavaScript中的异步执行是通过回调来管理的。
  • promise并不能替代回调函数,相反,promise需要then和catch回调函数。
  • promise可以解决一个回调函数被多次调用的问题。
  • 如果你需要多次调用一个回调函数,考虑使用事件(它可以跟promise结合使用)。
  • promise并不能保证它自己被处理,不过,可以把它们封装在超时中来避免promise不被处理。
  • promise可以被链式调用,实现简单的组合。
  • promise可以与生成器运行器结合使用,从而可以在不丢失异步执行的好处的前提下使用同步语法。
  • 当用同步语法编写生成器函数时,应该仔细地去理解算法中的哪一部分可以被并行运行,然后使用Promise.all来运行它们。
  • 开发人员不应该编写自己的生成器运行器,应该使用co或者Koa。
  • 开发人员也不应该自己编写代码来将Node格式的回调转化到promise中,应该使用Q。

异常处理通过生成器运行器可以在同步语法中工作。如果读者的编程经验仅限于使用具有同步语法的编程语言,那么学习JavaScript中的同步编程可能会让人望而生畏;至少对于作者来说是这样的。不过,这是现代JavaScript项目中的一项基本技能。