生成器
生成器 es6 解决异步编程的方案之一 语法和普通函数略有不同
语法 在创建时比普通函数多了一个*号
function * ff() {
console.log('打印')
}
//调用
ff()
调用 打印 啥也没有
console.log(ff())//ff {<suspended>}
打印看到了这个指针对象
//错误的调用方式
ff()
// 正确的调用方式
let ff1=ff()
ff1.next()
正确的调用方式
function* ff1() {
console.log('打印')
yield console.log('111')
yield console.log('222')
yield console.log('333')
}
yield
调用以上函数
let ff1=ff()
ff1.next()
打印结果
输出
打印 111
let ff1=ff()
ff1.next()
ff1.next()
调用两次
输出
打印 111
let ff1=ff()
ff1.next()
ff1.next()
ff1.next()
调用三次 输出
打印 111 222 333
由此可知 每次调用都会执行对应次数的yieid 对应的代码
总结
确实很好用