SOURCE

//  妙用一
function first() {
    setTimeout(() => {
        interat.next('第一次')//传递参数作为 回调结果给第一次调用的人,
        // 并且再次调用interat 的下一个 yield 的后面代码块
    }, 1000)
}

function two(f) {
    setTimeout(() => {
        // console.log(222)
        console.log(f, 'aaas')
        interat.next('第二次', f)
    }, 2000)
}

function three() {
    setTimeout(() => {
        // console.log(333)
        interat.next('第三次')
    }, 3000)
}

function* gen() {
    let f = yield first()
    console.log(f)
    let t = yield two(f)//可以传参
    console.log(t)
    let th = yield three()
    console.log(th)
}

let interat = gen()
interat.next() //第一次调用gen 执行第一个yield
//  妙用一 end 

console 命令行工具 X clear

                    
>
console