定义
Generator 函数就是一个封装的异步任务,或者说是异步任务的容器。异步操作需要暂停的地方,都用 yield 语句注明。
特点
可以交出函数的执行权(即暂停执行)。
使用
1. 每次调用,函数本身不清楚要返回的值,而是根据内部指针(即yield语句)来指定,它是分段执行的;
2. yield可以理解为函数的暂停标志,直到调用函数的next()方法,它才会继续执行;
3. 每次调用,返回一个遍历器对象,分别为:value: 返回的值;done: 是否调用结束;
示例
function* helloWordGenerator() { yield "hello"; yield "word"; return "ending" } let helloWorld = helloWordGenerator(); console.log(helloWorld.next()); // 第一次调用: { value: 'hello', done: false } console.log(helloWorld.next()); // 第二次调用: { value: 'hello', done: false } console.log(helloWorld.next()); // 第三次调用: { value: 'ending', done: true }