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

2016-05-04 14:06:27 +08:00
 123s
大神在哪里
5085 次点击
所在节点    Node.js
5 条回复
xjp
2016-05-04 18:07:00 +08:00
js 吗?

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

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

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

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

async 和 await 是用来多线程的

大概吧
repus911
2016-05-05 11:45:38 +08:00
@eote = =! python 里的 generator 和 static 以及保存上下文完全是三个东西啊
保存上下文的概念是闭包
generator 就是一个可迭代的元素 当然你可以加入闭包的功能
static 是类上的公有方法
magicdawn
2016-05-07 22:52:54 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/276245

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX