JavaScript 异步开发全攻略

2017-07-16 14:46:20 +08:00
 meathill

写了一本介绍 JavaScript 异步开发的小书: https://meathill.gitbooks.io/javascript-async-tutorial/content/

除了比较详细的介绍了异步开发面临的问题,Promise 和异步函数的使用,还结合实际开发中遇到的一些场景进行了分析,给出了范例代码,比如小程序、Vue 等。水平有限,大家如果发现问题,也请不吝赐教。

因为种种原因开启的这个话题,我希望能够把它尽量做完整,所以会保持随时更新,尽量涵盖最近遇到的问题。

希望对大家有所帮助。

3869 次点击
所在节点    分享创造
10 条回复
ijse
2017-07-16 15:00:32 +08:00
很不错~

不过感觉题目起得大了一点,只介绍了 Promise 及 Async 两种嘛, 其实前端异步的解决方案挺多的,早期 Promise 普及前的 EventEmitter 类似的事件方案、Async.js 的函数库方案,还有一些尝试从编译入手的 Jscex (后改名 wind.js )、还有响马的 fibjs 也算,等等,写一本书也挺精彩的了~
meathill
2017-07-16 15:10:33 +08:00
@ijse

谢谢回复。是这样的,在我看来,异步回调和事件机制这些早期处理异步的做法,都很简单,但都有问题。既然是攻略,那一定是介绍更好的做法,尽量让读者绕过一些坑,所以就没提。老赵的 wind.js 很棒,可惜早于这个世代,被埋没了,但这会儿再去介绍,也不太合适。fibjs 我的确没了解过,回头学习一下。
ijse
2017-07-16 15:26:30 +08:00
是的,后来这些方式都不流行了,不过作为历史了解一下也不错,从中可以看出 js 的发展特点,也能够给读者一些不同思路。

PS: 上一个回复中写错了,wind.js 不是编译而是使用 eval(), fibjs 才是。。
sagaxu
2017-07-16 15:29:24 +08:00
在 await 出来之前,js 异步开发太烧脑了
meathill
2017-07-16 15:37:41 +08:00
@ijse 不是吧,如果我没记错的话,wind.js 分开发环境和生产环境,前者用 `eval()`,后者编译。或者说正是因为前者用 `eval()` 被一群键盘侠骂惨了,老赵才搞了个编译版本出来,结果键盘侠还是不肯放过他,他才干脆关闭了项目。

刚看了一下 fibjs,知乎上看的,感觉是另起炉灶的 node.js 啊,那成本有点高哟……
nino
2017-07-16 18:31:51 +08:00
老赵出 wind.js 的时候,前端有构建过程的公司,少之又少…… 这几年算是天翻地覆了
meathill
2017-07-16 20:08:56 +08:00
@nino 没错,我也是从他那里学到的,原来还能这样玩~~
AlwaysBee
2017-07-16 21:25:19 +08:00
@meathill 当初公司就是用 fib.js 重构代码(勇气可嘉啊),大半年之后,还是回到 node.js
Sapp
2017-07-17 14:22:02 +08:00
自从有个 async/await,再也没觉得异步是个什么很麻烦的事了...
LeeSeoung
2017-07-17 16:06:42 +08:00
不错,支持下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/375714

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX