JavaScript ES6入门教程:16.generator函数



generator函数

Generator 函数是 ES6 提供的一种异步编程解决方案,封装了多个内部状态。
Generator 函数function关键字与函数名之间有一个星号;函数体内部使用yield表达式,定义不同的内部状态。

function* helloWorldGenerator() {
  yield 'hello';
  yield 'world';
  return 'ending';
}

调用 Generator 函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象,也就是遍历器对象(Iterator Object)。

var hw = helloWorldGenerator();
hw.next()
// { value: 'hello', done: false }
hw.next()
// { value: 'world', done: false }
hw.next()
// { value: 'ending', done: true }
hw.next()
// { value: undefined, done: true }

yield后面的表达式,只有当调用next方法、内部指针指向该语句时才会执行。

异步


上一篇: 15.module 下一篇: 17.ArrayBuffer