Javascript 异步开发全攻略 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
meathill
V2EX    分享创造

Javascript 异步开发全攻略

  •  
  •   meathill
    meathill 2017-07-16 14:46:20 +08:00 4418 次点击
    这是一个创建于 3011 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    希望对大家有所帮助。

    10 条回复    2017-07-17 16:06:42 +08:00
    ijse
        1
    ijse  
       2017-07-16 15:00:32 +08:00
    很不错~

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

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

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

    刚看了一下 fibjs,知乎上看的,感觉是另起炉灶的 node.js 啊,那成本有点高哟……
    nino
        6
    nino  
       2017-07-16 18:31:51 +08:00
    老赵出 ind.js 的时候,前端有构建过程的公司,少之又少…… 这几年算是天翻地覆了
    meathill
        7
    meathill  
    OP
       2017-07-16 20:08:56 +08:00
    @nino 没错,我也是从他那里学到的,原来还能这样玩~~
    AlwaysBee
        8
    AlwaysBee  
       2017-07-16 21:25:19 +08:00
    @meathill 当初公司就是用 fib.js 重构代码(勇气可嘉啊),大半年之后,还是回到 node.js
    Sapp
        9
    Sapp  
       2017-07-17 14:22:02 +08:00
    自从有个 async/await,再也没觉得异步是个什么很麻烦的事了...
    LeeSeoung
        10
    LeeSeoung  
       2017-07-17 16:06:42 +08:00
    不错,支持下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2896 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 14:06 PVG 22:06 LAX 07:06 JFK 10:06
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86