写了一本介绍 JavaScript 异步开发的小书: https://meathill.gitbooks.io/javascript-async-tutorial/content/
除了比较详细的介绍了异步开发面临的问题,Promise 和异步函数的使用,还结合实际开发中遇到的一些场景进行了分析,给出了范例代码,比如小程序、Vue 等。水平有限,大家如果发现问题,也请不吝赐教。
因为种种原因开启的这个话题,我希望能够把它尽量做完整,所以会保持随时更新,尽量涵盖最近遇到的问题。
希望对大家有所帮助。
1
ijse 2017-07-16 15:00:32 +08:00
很不错~
不过感觉题目起得大了一点,只介绍了 Promise 及 Async 两种嘛, 其实前端异步的解决方案挺多的,早期 Promise 普及前的 EventEmitter 类似的事件方案、Async.js 的函数库方案,还有一些尝试从编译入手的 Jscex (后改名 wind.js )、还有响马的 fibjs 也算,等等,写一本书也挺精彩的了~ |
2
meathill OP @ijse
谢谢回复。是这样的,在我看来,异步回调和事件机制这些早期处理异步的做法,都很简单,但都有问题。既然是攻略,那一定是介绍更好的做法,尽量让读者绕过一些坑,所以就没提。老赵的 wind.js 很棒,可惜早于这个世代,被埋没了,但这会儿再去介绍,也不太合适。fibjs 我的确没了解过,回头学习一下。 |
3
ijse 2017-07-16 15:26:30 +08:00
是的,后来这些方式都不流行了,不过作为历史了解一下也不错,从中可以看出 js 的发展特点,也能够给读者一些不同思路。
PS: 上一个回复中写错了,wind.js 不是编译而是使用 eval(), fibjs 才是。。 |
4
sagaxu 2017-07-16 15:29:24 +08:00
在 await 出来之前,js 异步开发太烧脑了
|
5
meathill OP @ijse 不是吧,如果我没记错的话,wind.js 分开发环境和生产环境,前者用 `eval()`,后者编译。或者说正是因为前者用 `eval()` 被一群键盘侠骂惨了,老赵才搞了个编译版本出来,结果键盘侠还是不肯放过他,他才干脆关闭了项目。
刚看了一下 fibjs,知乎上看的,感觉是另起炉灶的 node.js 啊,那成本有点高哟…… |
6
nino 2017-07-16 18:31:51 +08:00
老赵出 wind.js 的时候,前端有构建过程的公司,少之又少…… 这几年算是天翻地覆了
|
9
Sapp 2017-07-17 14:22:02 +08:00
自从有个 async/await,再也没觉得异步是个什么很麻烦的事了...
|
10
LeeSeoung 2017-07-17 16:06:42 +08:00
不错,支持下
|