码迷,mamicode.com
首页 > 其他好文 > 详细

Generator函数

时间:2019-12-09 16:55:17      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:遍历   hello   test   封装   class   内容   异步编程   bsp   tor   

概念:
1、ES6提供的解决异步编程的方案之一
2、Generator函数是一个状态机,内部封装了不同状态的数据,
3、用来生成遍历器对象
4、可暂停函数(惰性求值), yield可暂停,next方法可启动。每次返回的是yield后的表达式结果
特点:
1、function 与函数名之间有一个星号
2、内部用yield表达式来定义不同的状态

function* generatorExample(){
let result = yield ‘hello‘; // 状态值为hello
yield ‘generator‘; // 状态值为generator
}
3、generator函数返回的是指针对象(接11章节里iterator),而不会执行函数内部逻辑
4、调用next方法函数内部逻辑开始执行,遇到yield表达式停止,返回{value: yield后的表达式结果/undefined, done: false/true}
5、再次调用next方法会从上一次停止时的yield处开始,直到最后
6、yield语句返回结果通常为undefined, 当调用next方法时传参内容会作为启动时yield语句的返回值。

    function* generatorTest() {
      console.log(函数开始执行);
      yield hello;//输出hello暂定
      console.log(函数暂停后再次启动);
      yield generator;//输出generator
    }
    //生成遍历器对象
    let Gt=generatorTest();
   console.log(Gt);//遍历器对象
  let result=Gt.next();//函数执行,遇到yiedle暂停
    console.log(result)//{value: "hello", done: false}
    result = Gt.next();// // 函数再次启动
    console.log(result);// {value: ‘generator‘, done: false}
    </script>

 

Generator函数

标签:遍历   hello   test   封装   class   内容   异步编程   bsp   tor   

原文地址:https://www.cnblogs.com/hack-ing/p/12011886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!