前端测试题:在Generator函数中," yield* "语句的作用是?
- 2020 年 4 月 7 日
- 笔记


考核内容:关键字 yield* 的作用
题发散度: ★★
试题难度: ★
解题思路:
不明白Generator 用法的,先点下面链接:
前端测试题:关于新特性Generator函数的描述,错误的是?
yield* 表达式
如果在 Generator 函数内部,调用另一个 Generator 函数。需要在前者的函数体内部,自己手动完成遍历。
ES6 提供了yield*表达式,用来在一个 Generator 函数里面执行另一个 Generator 函数。

从语法角度看,如果yield表达式后面跟的是一个遍历器对象,需要在yield表达式后面加上星号,表明它返回的是一个遍历器对象。这被称为yield*表达式。
关键字yield*来实现调用另外的Generator函数。如果一个Generator函数A执行过程中,进入(调用)了另一个Generator函数B,那么会一直等到Generator函数B全部执行完毕后,才会返回Generator函数A继续执行。
参考代码:
function* fn(){ yield "jerry" yield "TOM" } function* bar() { yield 'shuke'; yield* fn(); yield 'es6'; } var f = bar() f.next()
答案:
A、调用另外的Generator函数