123s
V2EX  ›  Node.js

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

  •  
  •   123s · May 4, 2016 · 5548 views
    This topic created in 3660 days ago, the information mentioned may be changed or developed.
    大神在哪里
    5 replies    2016-05-07 22:52:54 +08:00
    xjp
        1
    xjp  
       May 4, 2016
    js 吗?

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

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

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

    所以这大概就是他们俩的关系
    SoloCompany
        2
    SoloCompany  
       May 4, 2016
    generator 的语义,远远没有 async / await 直观好理解吧
    eote
        3
    eote  
       May 5, 2016
    Python 里的 generator 感觉像 static 函数,保存上下文

    async 和 await 是用来多线程的

    大概吧
    repus911
        4
    repus911  
       May 5, 2016
    @eote = =! python 里的 generator 和 static 以及保存上下文完全是三个东西啊
    保存上下文的概念是闭包
    generator 就是一个可迭代的元素 当然你可以加入闭包的功能
    static 是类上的公有方法
    magicdawn
        5
    magicdawn  
       May 7, 2016
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3505 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 11:32 · PVG 19:32 · LAX 04:32 · JFK 07:32
    ♥ Do have faith in what you're doing.