【发布时间】:2016-10-18 14:16:49
【问题描述】:
刚开始使用 Nodejs 并在以下代码中将数组作为响应推送时遇到了这个问题。我知道这是因为 Nodejs 的异步特性而发生的,我也尝试应用异步但没有得到想要的结果。有人可以告诉我此代码的修复方法吗:
array = [];
var company = companySchema.Company;
company.findOne({_id: companySchema.objectId(req.tempStore.companyId)}, function (err, comp) {
if (err) {
console.log(err);
}
else {
var i;
var length = comp.events.length;
var dataset = datasetSchema.dataset;
for (i = 0; i < length; i++) {
dataset.find({companyId:comp.events[i]}, function (err,data) {
if (err) {
console.log(err);
}
else {
array.push(data);
}
console.log("array-----"+array); // prints array here
});
}
}
console.log("array-----"+array); // array is empty hence causing empty response
res.response.data = array;
next();
});
【问题讨论】:
标签: node.js asynchronous mongoose