第一部分、简介

  • Generator函数是一种异步编程解方案,可以理解为是一个状态机,封装了多个内部状态,还是一个遍历器对象生成函数
  • Generator函数是一个普通的函数,function和函数名之间有一个*,函数体内部使用yield语句定义不同的状态。
  • 遍历器对象的next方法运算逻辑,遇到yield语句就暂停执行后面的操作,将其后的表达式作为返回值对象的value属性,直到遇到return语句,并将其后的值作为value返回,否则返回undefined
  • Generator函数可以不用yield语句,变成一个暂缓执行函数。
  • next方法的参数yieled返回值是undefined,next()可以携带一个参数,参数会被视为上一条yield语句的返回值
  • for…of循环可以自动遍历Generator函数生成的Iterator对象。
  • Generator.prototype.throw():可以在函数体外抛出错误,在函数体内捕获