generator 函数

generator 函数
+ 一种长得很像函数的玩意
+ 但是不是函数, 函数生成器(迭代器)

语法:
+ 再定义函数的时候, 再 function 后面 或者 函数名前面加一个 星号(*)
+ 函数内部可以使用一个 yield 关键字
=> 类似于 return 一样的作用
=> 可以给你制造一个结果
=> 让这个 generator 暂停
=> 当你再次回到这个 generator 的时候, 从上次 yield 继续向后执行代码
+ generator 的返回值是一个迭代器
=> 包含一个 next() 方法
=> 每一次 next 执行, 就会执行到下一个 yield 位置为止

// 当有了星号以后, fn 不再是一个函数了
    function* fn() {
      console.log('我是第一段 代码')

      yield '第一段结束'

      console.log('我是第二段 代码')

      yield '第二段结束'

      console.log('我是第三段 代码')

      return '第三段结束'
    }

    // result 就是 fn 给生成一个 迭代器
    const result = fn()
    console.log(result);
    // 第一次, 从 fn 的开头执行到第一个 yield,
    // 把 yield 后面的东西当作返回值
    const first = result.next()
    console.log(first)

    // 第二次, 从第一次的 yield 后面开始执行到第二个 yield 结束
    // 把 第二个 yield 后面的东西当作返回值
    const second = result.next()
    console.log(second)

    const third = result.next()
    console.log(third)

 

上一篇:使用mybaitsplus---Generator 提高开发效率


下一篇:Mybatis Plus 代码生成器