node.js - nodejs在普通函数中调用生成器函数
问题描述
我有 2 个函数:一个生成器函数和一个普通函数(没有 *)。生成器函数(示例):
function* generator(i) {
yield i;
yield i + 10;
}
和正常功能:
function normal(param) {
var variable = 1;
// yield generator function
}
我知道在普通函数中是不可能产生的,但是我怎样才能调用生成器呢?我必须使用 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
另一个函数内部的下一个值。
推荐阅读
- javascript - 如何在 Odoo 11 中通过 do_action() java-script 方法显示 action_id
- python - 有没有更简单的方法来删除数组中每个字符串前面的“-”
- ios - void函数中意外的非void返回值 - Swift 4(Firebase,Firestore)
- mysql - 操作存储在 mysql 文本列中的 Json 数据结构
- templates - Advanced Custom Fields not working for page template
- angular - 读取全局变量 Ionic
- python - 在代理后面使用 opensubtitles api Node.js/Python 包装器
- r - 调用时不显示现有值
- android - 使用 Retrofit 时安装 SSL 证书
- java - 如何格式化十进制数精度