因为它无法创建箭头生成器功能, yield 永远不会在箭头函数的上下文中使用。
var arrowGenerator = *() => { };
那么你应该能够在生成器函数的上下文中使用 yield 。就像这个
一样function* generator() {
funcWithCallback((value) => {
yield value;
});
}
但是在babel中它在箭头函数的上下文中使用 yield 而不是genreators。
我想这样做,所以你不需要返回一个带有值的回调函数,只是为了让它产生。
function* gen() {
yield function (callback) {
funcWithCallback(callback);
}
}
答案 0 :(得分:6)
yield
和yield*
关键字只能在生成器功能中使用 直接 。您的代码片段在概念上存在缺陷,类似于:
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();
}
显然,这两个例子并不“有用”,你的代码片段也是如此。