Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/meathill/gitbook-javascript-async-tutorial
A full tutorial for JavaScript asynchronous development, with every new feature.
https://github.com/meathill/gitbook-javascript-async-tutorial
async-await async-javascript ebook gitbook gitchat javascript promise tutorial
Last synced: 29 days ago
JSON representation
A full tutorial for JavaScript asynchronous development, with every new feature.
- Host: GitHub
- URL: https://github.com/meathill/gitbook-javascript-async-tutorial
- Owner: meathill
- Created: 2017-07-16T02:53:38.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-05-12T02:13:42.000Z (over 3 years ago)
- Last Synced: 2023-03-16T22:46:16.986Z (almost 2 years ago)
- Topics: async-await, async-javascript, ebook, gitbook, gitchat, javascript, promise, tutorial
- Language: JavaScript
- Homepage: https://meathill.gitbooks.io/javascript-async-tutorial/content/
- Size: 98.6 KB
- Stars: 17
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
前言
========为解决异步函数的回调陷阱,开发社区不断摸索,终于折腾出 Promise/A+。它的优势非常显著:
1. 不增加新的语法,可以立刻适配几乎所有浏览器
2. 以队列的形式组织代码,易读好改
3. 捕获异常方案也基本可用这套方案在迭代中逐步完善,最终被吸收进 ES2015。不仅如此,ES2017 中还增加了 Await/Async,可以用顺序的方式书写异步代码,甚至可以正常抛出捕获错误,维护同一个栈。可以说彻底解决了异步回调的问题。
现在大部分浏览器和 Node.js 都已原生支持 Promise,很多类库也开始返回 Promise 对象,更有各种降级适配策略。Node.js 7+ 则实装了 Await/Async。如果您现在还不会使用,那么我建议您尽快学习一下。本文我准备结合近期的开发经验,全面介绍现代化的 JavaScript 异步开发。
## 关于这本书
这本书最开始的内容源于我在 [SegmentFault](https://segmentfault.com/) 做的一场分享: [Promise 的 N 种用法](https://segmentfault.com/l/1500000008757392)。
后来去 GitChat 分享时,选题比较犯难,就跟运营妹子商量要不再做一次同样题目,这样我也省事儿。结果挂出来后乏人问津,只好再跟运营开会讨论,然后决定更名为[《JavaScript 异步开发攻略》](http://gitbook.cn/books/594541981b8e4b4036720fc9/index.html),并且增加非 Promise 的内容。改名后终于过了下限,然后我就动手写,于是便有了这本小书。
我写这本书时就打算根据环境发展随时更新内容,没想到 GitChat 设计成后期不允许修改文章,要改只能把内容发给运营人工修改。因为我写的时候为了分章节好维护好管理,用的是 Git + Gitbook,索性脆放到 Gitbook 上好了。名字也改成现在这个样子,增加一个“全”字。
## 目标读者要求
1. 前端水平:初级、中级
2. 了解 JavaScript
3. 最好有异步开发经历,希望写出更好的代码## 名词及约定
* ES6 = ES2015
* ES7 = ES2016 + ES2017
* 异步函数 = Async Functions = Await/Async范例代码会使用 ES6 的语法,也会混用 ES6 Module 和 CommonJS,请大家不要见怪。我会在代码当中加注释,其中会有一些关键内容,请大家不要忽略。
本文中所有代码均以 Node.js 7.0 为基础。
## 作者介绍
大家好,我叫翟路佳,花名“肉山”,这个名字跟 Dota 没关系,从高中起伴随我到现在。
我热爱编程,喜欢学习,喜欢分享,从业十余年,投入的比较多,学习积累到的也比较多,对前端方方面面都有所了解,希望能与大家分享。
我兴趣爱好比较广泛,尤其喜欢旅游,欢迎大家相互交流。
你可以在这里找到我:
* [博客](http://blog.meathill.com)
* [微博](http://weibo.com/meathill)
* [GitHub](https://github.com/meathill)## 版权许可
本书采用[“保持署名—非商用”创意共享4.0许可证](https://creativecommons.org/licenses/by-nc/4.0/)。
只要保持原作者署名和非商用,您可以自由地阅读、分享、修改本书。
## 反馈
如果您对于文中的内容有任何疑问,请在评论或 [Issue](https://github.com/meathill/javascript-async-tutorial/issues) 中告诉我。亦可发邮件给我:meathill[at]gmail.com。谢谢。