怎么正确的理解和使用co模块?
发布于 16 天前 作者 526878729 228 次浏览 来自 问答

新人一枚,我知道co模块能够将异步以同步形式操作,并不是真正的同步,但是我不知道在什么情况下才需要去刻意使用它

5 回复

当你觉得各种callback把代码组织的快炸的时候

  1. 学习generator用法
  2. 学习promise/a+规范
  3. 学习co

这是异步流程处理的

co 通过 yield 一个 Promise, 将Promise的resolve值赋值给 yield 左值, 实现了 async / await, 在 async / await 没有到来时, 使用 co.wrap 一个 generator function, 跟一个 async function 一样, 都是返回一个 Promise实例, 迁移到 async/await 也特别简单, 只需将 co.wrap 换为 async, 将 yield 换为 await 即可, 不用修改该函数被调用的地方… 这样做好理解, 好迁移~建议大家不要裸奔着使用 generator function, 不太好理解, 也不好迁移~

回到顶部