ES6 生成器:一种非凡的函数 / 异步编程 / 函数代码分隔符
function getUserData() {setTimeout(() => {
const data = '用户数据'
iterator.next(data);
}, 1000)
}
function getOrderData() {setTimeout(() => {
const data = '订单数据'
iterator.next(data);
}, 1000)
}
function getGoodData() {setTimeout(() => {
const data = '商品数据'
iterator.next(data);
}, 1000)
}
function * gen() {// 第二次调用 next() 传入的参数作为第一个 yield 函数执行的返回值
const userData = yield getUserData();
console.log(userData);
const orderData = yield getOrderData();
console.log(orderData);
const goodData = yield getGoodData();
console.log(goodData);
}
let iterator = gen();
iterator.next();
// (1s 后) 用户数据
// (1s 后) 订单数据
// (1s 后) 商品数据