美文网首页
generator类型

generator类型

作者: 练习时长2年半的个人练习生 | 来源:发表于2020-04-28 11:31 被阅读0次
generator
  • 定义:是es6新引入的新的数据类型,看起来像函数,但是可以返回多次,并且记录状态 可以看作看暂停得函数。

  • 语法:gennerator对象用function* 来声明,用yield暂停多次返回,也可以用return。调用的时候用next.或用for of 循环迭代。

  • 作用:可以用同步代码的书写方式书写异步代码。避免回调地狱。

next

generator()返回的是一个generator对象。用next 实现分阶段调用generator,每次返回值是一个对象{value:yield后边的值,done:布尔值},done 属性是一个布尔值,表示 Generator 函数是否执行完毕,即是否还有下一个阶段

当代码执行完,或者 遇到return时 done变为true;

     function* fn(){
          let id = 0;
          yield ++id;
          yield ++id
     }
   let aa = fn()
   console.log(aa.next()) //{value:1,done:false}
   console.log( aa.next())//{value:2,done:false}
  console.log( aa.next())//{value: undefined, done: true}


  • 补充 :function 如果用fn()的方式调用,代码执行完 没有return 得情况下,那么默认返回undefined
    做一个自增ID
  function* default_id(id) {
    while (true) {//while 是为了保证能一直阶段性返回
      yield ++id
    }
  }
  let idConstructor = default_id(0)
  console.log(idConstructor.next())//{value:1,done:false}
  console.log(idConstructor.next())//{value:2,done:false}
  console.log(idConstructor.next())//{value:3,done:false}
for of

for of 可以一次性执行generator 所有结果。

function* saveMoney(){
      let sum = 0;
      
      while(sum <999999999){
         sum +=10000000
         yield  sum
      }

      return '赚够了'
  }
  let generator = saveMoney();
  for(let res of generator){
    console.log(res) 
  }
  //执行结果  1,2,3,4,5

相关文章

  • generator类型

    generator 定义:是es6新引入的新的数据类型,看起来像函数,但是可以返回多次,并且记录状态 可以看作看...

  • generator 生成器

    generator generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个...

  • Mybatis tinyint 转 Integer

    在generatorConfig.xml中 mybatis generator默认会将tinyint类型映射为by...

  • ES6 - Generator

    generator(生成器)是ES6标准引入的新的数据类型,与函数类似,但它可以返回多次。generator由 f...

  • python 中 async/await个人学习笔记

    用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型...

  • js 之generator(ES6提供的)

    generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次...

  • Generator

    generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次...

  • TypeScript

    自动拆分字符串 参数类型 参数默认值 可选参数 Rest and Spread Generator方法 yield...

  • generator

    generator(生成器)是ES6标准引入的新的数据类型. 1、由 function* 定义 2、yield ...

  • hibernate.hbm.xml必须必须配置主键

    SEQXXXXXSEQ

网友评论

      本文标题:generator类型

      本文链接:https://www.haomeiwen.com/subject/lfzmwhtx.html