123s
V2EX  ›  Node.js

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

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

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

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

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

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

    async 和 await 是用来多线程的

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