javascript 中的generator(生成器)函数,实际使用示例

  1. 在抽奖的时候,以前都是用一个全局变量,去处理次数,现在我们可以使用生成器函数

若采用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);
});


复制代码
  1. 结合异步获取数据
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
喜欢就支持一下吧
点赞0 分享