保存成功
保存失败,请重试

JavaScript 异步开发攻略

作者/分享人:Meathill
向 Ta 提问
大家好,我叫翟路佳,花名“肉山”,这个名字跟 Dota 没关系,从高中起伴随我到现在。 我热爱编程,喜欢学习,喜欢分享,从业十余年,投入的比较多,学习积累到的也比较多,对前端方方面面都有所了解,希望能与大家分享。 我兴趣爱好比较广泛,尤其喜欢旅游,欢迎大家相互交流。 你可以在这里找到我: 博客:https://blog.meathill.com 微博:https://weibo.com/meathill GitChat:https://gitbook.cn/gitchat/author/593cb520ef8d9c2863173543

为解决异步函数的回调陷阱,开发社区不断摸索,终于折腾出 Promise/A+。它不增加新的语法,可以适配几乎所有浏览器;以队列的形式组织代码,易读好改;捕获异常方案也基本可用。这套方案在迭代中逐步完善,最终被吸收进 ES2015。不仅如此,ES2017 中还增加了 Await/Async,可以用顺序的方式书写异步代码,甚至可以正常抛出捕获错误,维护同一个栈。可以说彻底解决了异步回调的问题。

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

  1. 什么是 Promise?
  2. 异步回调有哪些问题?
  3. Promise 详解
  4. 使用范例全面解析
  5. 常见错误
  6. 更好的解决方案:Await/Async
  7. Tips:在全平台使用
  8. Tips:在小程序使用
  9. Tips:使用 util.promisify 改进现有代码

难度:了解 JavaScript,最好有异步开发经验。

实录提要:

  • 异步函数如何在 Gulp 里应用?
  • 异步函数如何在 H5 项目中应用?
  • promise 有什么缺陷,await 是怎么解决的?
  • 模拟实现一个 promise,有没有好的仓库源码推荐?
  • 异步编程在前后端分离的场景下,主要有哪些作用?前后端分离下的 API 该如何管理才合理?
  • 有了 Async 还有必要学习 Generator 吗?
  • “启用一个新栈”,可以理解为 eventloop 吗?
  • JS 引擎返回的回调函数的结果,不会 push 到原程序运行的栈内吗?
已有679人预订
预订达标
文章出炉
交流日期
     
17.06.14
17.06.27
17.07.05 20:30
查看文章评论/提问
灌汤包
看不明白
Raven: 说明你基础太差了 赶紧先去恶补下
KING
好文,而且是长文,promise讲解中用到的读取文件的例子非常棒,但需要有一些node和promise基础; 同时由于主要讲promise的最佳用法,感觉有些东西没能细致的讲理论和原理,比如thenable是啥,这些还是得自己去琢磨和研究。
你可能还喜欢
被动收入 101 :使用云开发和 Taro 开发一个小程序
白宦成
恕我直言,90% 的程序员都扛不住这波 MQ 的面试四连炮!
王码农
[动图演示]Redis 持久化 RDB/AOF 详解与实践
韦世东
Apollo 5.0 障碍物行为预测技术
Apollo开发者社区
超高性价比的 MongoDB 零基础快速入门实战教程
韦世东
抢先阅读 Kubernetes 1.15 新特性解读
张晋涛
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效