我有 2 个函数:一个生成器函数和一个普通函数(不带 *)。生成器函数(示例):
function* generator(i) {
yield i;
yield i + 10;
}
和正常功能:
function normal(param) {
var variable = 1;
// yield generator function
}
我知道在普通函数中不可能产生yield,但是我如何调用生成器?我必须使用 Promises 或类似的东西吗?如果必须是 Promise,那么它应该是什么样子?我尝试这样做:
new Promise((resolve) => {
var result = generator(3);
Promise.all(result);
});
但这给了我一个错误
反之亦然,它是如何工作的?例如,如果我需要在生成器内调用普通函数?
最佳答案
您可以在生成器函数上使用 next()
方法,如下所示:
function* generator(i) {
yield i;
yield i + 10;
}
function higherLevel (){
let gen = generator(1).next();
return gen
}
console.log(higherLevel());
这样您就可以在另一个函数中获取 yield
的下一个值。
关于node.js - NodeJS在普通函数内调用生成器函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50969563/