co 库实现原理
const fs = require('fs'); function fn1 () { return new Promise((resolve, reject) => { setTimeout(() => { console.log(100) resolve(100) }, 1000); }) } function fn2 () { return new Promise((resolve, reject) => { setTimeout(() => { console.log(200) resolve(200) }, 1000); }) } function* gen () { yield fn1() yield fn2() } function co (it) { return new Promise((resolve, reject) => { function next (r) { let {value, done} = it.next(r) if (!done) { value.then(r => { next(r) }, reject) } else { resolve(r) } } next() }) } co(gen())
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论