【发布时间】:2014-09-06 16:25:18
【问题描述】:
我正在使用Koa.js 框架和Mongoose.js 模块。
通常要从 MongoDB 中获取结果,我的代码如下:
var res = yield db.collection.findOne({id: 'my-id-here'}).exec();
但我需要为名为“items”的数组的每个元素执行这一行。
items.forEach(function(item) {
var res = yield db.collection.findOne({id: item.id}).exec();
console.log(res) // undefined
});
但是这个代码没有运行,因为 yield 在函数中。如果我这样写:
items.forEach(function *(item) {
var res = yield db.collection.findOne({id: item.id}).exec();
console.log(res) // undefined
});
我也没有在 res 变量中得到结果。我尝试使用“generator-foreach”模块,但效果不佳。
我知道这是我对 Node.js 的语言素养缺乏了解。但是你们能帮我找到一种方法吗?
【问题讨论】:
-
你对
generator-foreach做了什么尝试? -
我刚刚将 forEach 替换为 generator-foreach。其余代码相同。你能修改我的代码 sn-p 并确保它正常工作吗?
标签: node.js foreach mongoose generator koa