js-async-tutorial icon indicating copy to clipboard operation
js-async-tutorial copied to clipboard

深入理解 JavaScript 异步

深入理解 JavaScript 异步

前言

2014年秋季写完了《深入理解javascript原型和闭包系列》,已经帮助过很多人走出了 js 原型、作用域、闭包的困惑,至今仍能经常受到好评的留言。

很早之前我就总结了JS三座大山这个概念(虽然没有到处宣扬),前两座(原型、作用域)已经基本讲明白,而第三座(异步)也应该做一个总结。

于是,2017年初春,我花费大约一周的业余时间来对 JS 异步做一个完整的总结,和各位同学共勉共进步!

目录

part1 基础部分

  • 什么是异步
  • 异步和 event-loop
  • 事件绑定算不算异步?

part2 jQuery的解决方案

  • jQuery-1.5 之后的 ajax
  • jQuery deferred
  • jQuery promise

part3 ES6-Promise

  • Promise 加入 ES6 标准
  • Promise 在 ES6 中的具体应用
  • 对标一下 Promise/A+ 规范
  • Promise 真的取代 callback 了吗?
  • 用 Q.js 库

part4 Generator

  • ES6 中的 Generator
  • Iterator 遍历器
  • Generator 的具体应用
  • Thunk 函数
  • Generator 与异步操作
  • koa 中使用 Generator
  • Generator 的本质是什么?是否取代了 callback

part5 async-await

  • ES7 中引入 async-await
  • 如何在 nodejs v6.x版本中使用 async-await

part6 总结

  • 总结

运行程序的说明

要求本地 node 在v6或以上版本,然后执行以下命令下载代码并安装依赖的插件

$ cd ~
$ git clone [email protected]:wangfupeng1988/js-async-tutorial.git
$ cd js-async-tutorial
$ npm i

最后,本地可能需要启动一个静态服务器来运行页面,我使用http-server插件

$ npm install http-server -g
$ cd js-async-tutorial
$ http-server -p 8881

然后浏览器访问http://localhost:8881/xxx/xxx.html即可

关于作者

求打赏

如果你看完了,感觉还不错,欢迎给我打赏 ———— 以激励我更多输出优质内容