基于函数,声名函数的时候加上 *
function *fn(){
yield "张三";
yield "李四";
yield "王五";
}
let interatorObj = fn();//获取一个可迭代的对象
console.log(interatorObj.next())
console.log(interatorObj.next())
console.log(interatorObj.next())
console.log(interatorObj.next())
输出结果
{value: '张三', done: false}
{value: '李四', done: false}
{value: '王五', done: false}
{value: undefined, done: true}
生成器异步处理
function *fn(){
yield "张三";
yield "李四";
yield "王五";
}
let interatorObj = fn();
function func() {
let res = interatorObj.next()
console.log(res)
if (res.value) {
console.log('迭代完成了')
} else {
setTimeout(func, 1000)
}
}
func()
输出结果
{value: '张三', done: false}
{value: '李四', done: false}
{value: '王五', done: false}
{value: undefined, done: true}
迭代完成了
万万语录
2022.11.16
吴老师昨天写了五六个案例,我就写了一个语录,他都ctrl c+v,今个不高兴写了