首页 > 代码库 > Generator [?d?en?re?t?(r)] 函数结构

Generator [?d?en?re?t?(r)] 函数结构

Generator函数是ES6新增的一种异步编程方案。

说明:Generator函数指的是一种新的语法结构,是一个遍历器对象生成器,它内部可以封装多个状态,非常适合用于异步操作。

Generator函数语法和普通的 function 函数类似,但有三个不同点:

(1)function 关键字和函数名称之间有一个星号(*)

(2)函数体内可以使用 yield  [ji:ld]  语句

(3)函数调用后不会立即执行,返回的是一个遍历器对象

//一个Generator函数

function* show() {

  yield ‘百度网‘

  yield ‘深圳‘

  yield ‘www.baidu.com‘

  return ‘end‘

}

//函数内部使用yield语法定义不同的状态,return 也可以定义一个状态,也就是说上面代码有四个状态

var y = show()  // 调用此函数,并不会立即执行它其中的代码,而是返回一个遍历器对象

console.log(y.next())  // 返回一个具有value和done属性的对象

console.log(y.next())  // 有return,返回(value:end,done:true); 如果没有return, 返回(value:undefined,done:true)

 

yield 语法:

每一个yield语句定义不同的状态,它也是一个代码执行暂停标识。

yield语句不能在普通函数中使用,否则会报错。

调用Generator 函数可以返回一个遍历器,要想访问Generator函数中的每一个状态,需要使用遍历器对象调用next()方法

 

Generator [?d?en?re?t?(r)] 函数结构