V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
123s
V2EX  ›  Node.js

小弟不解, generator 和 async 本质区别是什么

  •  
  •   123s · 2016-05-04 14:06:27 +08:00 · 4995 次点击
    这是一个创建于 2906 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大神在哪里
    5 条回复    2016-05-07 22:52:54 +08:00
    xjp
        1
    xjp  
       2016-05-04 18:07:00 +08:00
    js 吗?

    generator 原意是生成器 作为无限数组来使用

    后来发现 generator 配合 Promise 可以非常方便的解决异步回调的问题 于是 generator 就被用来做异步处理了 比如 koaJS 这个框架

    再后来发现 不行啊 generator 语义上原本就不是用来做异步处理的 但是这个实在太好用了 于是 ES2016 就把 generator 处理异步的分发重新封装了一下 改进了下语法 改成了 async 和 await 的形式

    所以这大概就是他们俩的关系
    SoloCompany
        2
    SoloCompany  
       2016-05-04 21:49:21 +08:00
    generator 的语义,远远没有 async / await 直观好理解吧
    eote
        3
    eote  
       2016-05-05 11:05:18 +08:00
    Python 里的 generator 感觉像 static 函数,保存上下文

    async 和 await 是用来多线程的

    大概吧
    repus911
        4
    repus911  
       2016-05-05 11:45:38 +08:00
    @eote = =! python 里的 generator 和 static 以及保存上下文完全是三个东西啊
    保存上下文的概念是闭包
    generator 就是一个可迭代的元素 当然你可以加入闭包的功能
    static 是类上的公有方法
    magicdawn
        5
    magicdawn  
       2016-05-07 22:52:54 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   942 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:32 · PVG 05:32 · LAX 14:32 · JFK 17:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.