//生成器
function getUser(){
setTimeout(()=>{
let data = '涛涛';
//第二次的next() 执行可以返回第一次的执行的结果
iterator.next(data)
}, 1000)
}
function getOrder(){
setTimeout(()=>{
let order = '订单'
iterator.next(order)
},1000)
}
function getGoods(){
setTimeout(function(){
let goods = '商品'
iterator.next(goods)
}, 1000)
}
function getEnd(){
console.log('end')
setInterval(() => {
iterator.next()
}, 1000);
}
//生成器函数
function * product(){
let user = yield getUser();
console.log(user); //第二次的执行next 返回了第一次执行后的结果 = 涛涛
let order = yield getOrder();
console.log(order); //第三次执行next ,返回了第二次执行后的结果 =订单
let goods = yield getGoods();
console.log(goods) //第四次执行next ,返回了第三次执行后的结果 = 商品
let end = yield getEnd();
console.log(end); //undifined
}
let iterator = product()
iterator.next();
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/289819.html