es6之yield

yield 关键字用来暂停和继续一个生成器函数。咱们能够在须要的时候控制函数的运行。
  yield 关键字使生成器函数暂停执行,并返回跟在它后面的表达式的当前值。与return相似,可是能够使用next方法让生成器函数继续执行函数yield后面内容,直到遇到yield暂停或return返回或函数执行结束。函数

yield 关键字用来暂停和继续一个生成器函数。咱们能够在须要的时候控制函数的运行。
  yield 关键字使生成器函数暂停执行,并返回跟在它后面的表达式的当前值。与return相似,可是能够使用next方法让生成器函数继续执行函数yield后面内容,直到遇到yield暂停或return返回或函数执行结束。spa

function* ge() {    //声明时须要添加*,普通函数内部不能使用yield关键字,不然会出错
  yield '1';
  yield '2';
  yield '3';
  return '4';
}

var a = ge();    //调用函数后不会运行,而是返回指向函数内部状态的指针
a.next();    // { value: '1', done: false }   遇到yield暂停
a.next();    // { value: '2', done: false }
a.next();    // { value: '3', done: false }
a.next();    // { value: '4', done: true}    函数执行完毕,返回done
a.next();    // { value: undefined, done: true}  已经执行完毕,返回undefined

若是next没有带有参数true,yield不能返回值,返回undefined;next函数带有参数true,即.next(true)时,那么yield就能够返回表达式的值,用于赋值。若是next带有其余参数,那么它就会将当前yield返回值置为该参数.如:var i = yield 1;意思是将1赋值给i.指针

运行以下图:code

相关文章
相关标签/搜索