在箭头函数中访问 yield

accessing yield inside arrow function

因为无法创建箭头生成器函数, yield 从未在箭头函数的上下文中使用。

var arrowGenerator = *() => { };

那么您应该能够在生成器函数的上下文中使用 yield。就像 这个

function* generator() {
    funcWithCallback((value) => {
       yield value;
    });
}

但在 babel 中,它在箭头函数而不是生成器的上下文中使用 yield

我想这样做,这样你就不需要 return 一个带有值的回调函数,只是为了产生它。

function* gen() {
    yield function (callback) {
        funcWithCallback(callback);
    } 
}

yieldyield* 关键字只能在生成器函数中直接 使用。您的代码片段在概念上存在缺陷,其方式类似于:

function f1() {
  if(someCondition) {
    f2((value) => {
       else {
         // do something
       }
    });
  }
}

或者,对此:

function f1() {
  f2((value) => {
    return someValue; // while this is legal, it doesn't cause f1 to return
  });

  codeAfterReturn();
}

显然,这 2 个示例没有 "work",您的代码片段也没有。