Skip to content

hhy5277/gitbook-javascript-async-tutorial

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

前言

为解决异步函数的回调陷阱,开发社区不断摸索,终于折腾出 Promise/A+。它的优势非常显著:

  1. 不增加新的语法,可以立刻适配几乎所有浏览器
  2. 以队列的形式组织代码,易读好改
  3. 捕获异常方案也基本可用

这套方案在迭代中逐步完善,最终被吸收进 ES2015。不仅如此,ES2017 中还增加了 Await/Async,可以用顺序的方式书写异步代码,甚至可以正常抛出捕获错误,维护同一个栈。可以说彻底解决了异步回调的问题。

现在大部分浏览器和 Node.js 都已原生支持 Promise,很多类库也开始返回 Promise 对象,更有各种降级适配策略。Node.js 7+ 则实装了 Await/Async。如果您现在还不会使用,那么我建议您尽快学习一下。本文我准备结合近期的开发经验,全面介绍现代化的 JavaScript 异步开发。

关于这本书

这本书最开始的内容源于我在 SegmentFault 做的一场分享: Promise 的 N 种用法

后来去 GitChat 分享时,选题比较犯难,就跟运营妹子商量要不再做一次同样题目,这样我也省事儿。结果挂出来后乏人问津,只好再跟运营开会讨论,然后决定更名为《JavaScript 异步开发攻略》,并且增加非 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 没关系,从高中起伴随我到现在。

我热爱编程,喜欢学习,喜欢分享,从业十余年,投入的比较多,学习积累到的也比较多,对前端方方面面都有所了解,希望能与大家分享。

我兴趣爱好比较广泛,尤其喜欢旅游,欢迎大家相互交流。

你可以在这里找到我:

版权许可

本书采用“保持署名—非商用”创意共享4.0许可证

只要保持原作者署名和非商用,您可以自由地阅读、分享、修改本书。

反馈

如果您对于文中的内容有任何疑问,请在评论或 Issue 中告诉我。亦可发邮件给我:meathill[at]gmail.com。谢谢。

About

A full tutorial for JavaScript asynchronous development, with every new feature.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy