yield* 语句

yield*语句也可以跟一个异步遍历器。

  1. async function* gen1() {
  2. yield 'a';
  3. yield 'b';
  4. return 2;
  5. }
  6. async function* gen2() {
  7. // result 最终会等于 2
  8. const result = yield* gen1();
  9. }

上面代码中,gen2函数里面的result变量,最后的值是2

与同步 Generator 函数一样,for await...of循环会展开yield*

  1. (async function () {
  2. for await (const x of gen2()) {
  3. console.log(x);
  4. }
  5. })();
  6. // a
  7. // b