Generator函数不会自己执行,需要手动调用next来执行,函数内部有yield关键字,遇到yield关键字,next会停止执行,需要再次调用next才继续执行,直到next中的返回的done为true时执行完毕
let pfn1 = new Promise(function(resolve, reject){ resolve('this is res1') }) let pfn2 = new Promise(function(resolve, reject){ resolve('this is res2') }) function* gen(){ var res1 = yield pfn1 console.log(res1) var res2 = yield pfn2 console.log(res2) return 'end' } ( async ()=>{ var g = gen(); var next = g.next(); while (!next.done) { res = await next.value next = g.next(res) } return 'end' })() //this is res1 //this is res2
1801

被折叠的 条评论
为什么被折叠?



