- 在抽奖的时候,以前都是用一个全局变量,去处理次数,现在我们可以使用生成器函数
若采用ES5的方式,不使用Generator,则需要将count存入全局变量中,但是这样非常不安全,如果别人知道变量是什么,就可以修改变量;另外存入全局变量也会影响性能。
let getNum = function* (count) {
while (count > 0) {
count--;
yield count;
}
}
let theClick = getNum(5);
document.getElementById('btn').addEventListener('click', function(){
console.log(theClick.next().value);
});
复制代码
- 结合异步获取数据
let ajax = function* () {
yield new Promise(function(resolve, reject){
setTimeout(function(){
resolve({err_code: 0});
})
})
}
ajax().next().value.then(function(val){console.log('val:', val)});
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END