mat*_*sen -3 javascript ecmascript-6 babeljs
由于无法创建箭头生成器函数, 因此从不在箭头函数的上下文中使用yield.
var arrowGenerator = *() => { };
Run Code Online (Sandbox Code Playgroud)
那么你应该能够在生成器函数的上下文中使用yield.就像这样
function* generator() {
funcWithCallback((value) => {
yield value;
});
}
Run Code Online (Sandbox Code Playgroud)
但巴贝尔它使用产量箭头功能的情况下,而不是genreators.
我想这样做,所以你不需要返回一个带有值的回调函数,只是为了产生它.
function* gen() {
yield function (callback) {
funcWithCallback(callback);
}
}
Run Code Online (Sandbox Code Playgroud)
该yield和yield*关键字只能用于直接生成函数里面.您的代码片段在概念上存在缺陷,其方式类似于:
function f1() {
if(someCondition) {
f2((value) => {
else {
// do something
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
或者,对此:
function f1() {
f2((value) => {
return someValue; // while this is legal, it doesn't cause f1 to return
});
codeAfterReturn();
}
Run Code Online (Sandbox Code Playgroud)
显然,这两个例子并不"有用",你的代码片段也是如此.