17.生成器函数声明与调用

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 生成器就是一个特殊的函数,可以用来进行异步编程,ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同
      // 之前的写法是纯回调函数
      // 中间必须加上*号
      function* gen() {
        // console.log("生成器函数");
        console.log(111);

        yield "函数分隔符"; //yield函数代码的分隔符,三个分隔符产生四块代码
        console.log(222);

        yield "函数分隔符2";
        console.log(333);

        yield "函数分隔符3";
        console.log(444);
      }

      let result = gen(); //直接调用不行
      // console.log(result);

      // 借助next方法去调用
      // result.next();
      // result.next();
      // result.next();
      // result.next();

      // 遍历
      for (const iterator of gen()) {
        console.log(iterator);
      }
    </script>
  </body>
</html>
posted @ 2022-01-02 16:14  问某完红  阅读(41)  评论(0编辑  收藏  举报