1、1s后输出111,2s后输出222,3秒后输出333
// 像这种不断的回调会产生回调地狱
setTimeout(() => {
console.log(111)
setTimeout(() => {
console.log(222)
setTimeout(() => {
console.log(333)
}, 3000)
}, 2000)
}, 1000)
function one() {
setTimeout(() => {
console.log(111)
iterator.next()
}, 1000)
}
function two() {
setTimeout(() => {
console.log(222)
iterator.next()
}, 2000)
}
function three() {
setTimeout(() => {
console.log(333)
iterator.next()
}, 3000)
}
function* gen() {
yield one()
yield two()
yield three()
}
let iterator = gen()
iterator.next() // 直接调用三次,没有延时的效果
2、 模拟获取用户数据、订单数据、商品数据