ES6中generator
代码1:
<script>
//generator生成器函数,可以将一个函数分步进行
function *show() {
console.log("我是第一步");
yield
console.log("我是第二步");
}
let genObj = show()
console.log(genObj);
genObj.next()
genObj.next()
//generator其实质是将函数内部分为多个函数
</script>
代码2:
<script>
//yield是可以进行传参和返回
//传参
function *show1() {
console.log("show11111第一部分执行完毕");
let num = yield
console.log("show11111第二部分执行完毕");
console.log(num);
}
let genObj1 = show1()
genObj1.next(666)
genObj1.next(888)
//赋值
function *show2() {
console.log("show22222第一部分执行完毕");
yield "我是返回的数据"
console.log("show22222第二部分执行完毕");
return "I'm data"
}
console.log("--------------------------------------------------------------");
let genObj2 = show2()
console.log(genObj2.next());//{value: "我是返回的数据", done: false}
console.log(genObj2.next());//{value: "I'm data", done: true}
/**
* {value: "我是返回的数据", done: false}
* value是指返回的数据,done是指是否执行到最后
* */
</script>

浙公网安备 33010602011771号