es6 生成器

15:26:46//生成器
function getUser(){
setTimeout(()=>{
let data = '涛涛';
//第二次的next() 执行可以返回第一次的执行的结果,同时接着执行下一个迭代函数getOrder
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();

 

posted on 2022-09-16 14:18  totau  阅读(17)  评论(0编辑  收藏  举报

导航