1024ES6JavaScript 进阶营

20.ES6中Generator生成器

2019-02-18  本文已影响2人  圆梦人生

Generator是ES6的生成器
1、Generator 函数是 ES6 提供的一种异步编程解决方案,在函数中可以暂停操作
2、Generator定义的时候需要在function 和方法名直接有个*号
3、函数体内部使用yield表达式,定义不同状态
4、调用next方法返回不同结果

定义generator函数, 号定义方式:
1、function
generatorFun() ...
2、function * generatorFun() ...
3、function *generatorFun() ...

案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Generator</title>
    <script>
        // Generator是ES6的生成器
        // 1、Generator 函数是 ES6 提供的一种异步编程解决方案,在函数中可以暂停操作
        // 2、Generator定义的时候需要在function 和方法名直接有个*号
        // 3、函数体内部使用yield表达式,定义不同状态
        // 4、调用next方法返回不同结果
        // 定义generator函数
        // *号定义方式:
        // function* generatorFun(){
        // function * generatorFun(){
        function *generatorFun(){
            console.log('start----');
            yield 'one';
            console.log('start 1----');
            yield 'two';
            console.log('start 2----');
            return 'over'
        }
        // 调用
        let g = generatorFun();
        // console.log(g);
        // let { value } = g.next();
        // console.log(value);
        // 调用 next方法
        // {value: "one", done: false}
        console.log(g.next());
        // {value: "two", done: false}
        console.log(g.next());
        // {value: "over", done: true}
        console.log(g.next());
        // {value: undefined, done: true}
        console.log(g.next());
    </script>
</head>
<body>
    
</body>
</html>

上一篇 下一篇

猜你喜欢

热点阅读