nicenote/source/_posts/如何理解yield和-函数.md
2018-05-26 17:58:20 +08:00

711 B

title date tags categories
如何理解yield和*函数 2018-01-30 16:10:15
generator
yield
JS

Koa1

什么是 Generator

function *test() {

}

test()    //  -> [Object Generator]

generator 函数可以只运行函数的一部分,以及控制何时运行剩余的部分。

function *learn() {
  yield 1
  yield 2
  return 3
}
let learnGen = learn()

learnGen.next()  //  -> {"done": false, "value": 1}

再次调用会运行到下一个 yield 处

learnGen.next()  //  -> {"done": false, "value": 2}
learnGen.next()  //  -> {"done": true, "value": 3}

小结

可以通过 yield* 的结合实现类似 await async 的效果的效果