function next ({done, value}) {
return new Promise(resolve => {
if (done) { // finish
resolve(value)
} else { // not yet
value.then(data => {
next(gen.next(data)).then(resolve)
})
}
})
}
function * main () {
let num1 = yield 1
let num2 = yield 2
return num1 + num2
}
main().next()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…