当我必须将 mongodb find 回调函数中的值设置为外部变量时,我遇到了一个奇怪的问题。例如:
p += '<tr style="width: 165px!important;">';
photos.forEach(function(photo) {
EventPhoto.findOne({ _photo: photo._id }, function(err, doc) {
if (doc.main) {
p += '<td class="center-text"><a href="#" class="main-photo-on" onclick="javascript:changeMainPhoto("' + photo._id + '");">destaque</a></td>';
} else {
p += '<td class="center-text"><a href="#" class="main-photo-off" onclick="javascript:changeMainPhoto("' + photo._id + '");">destaque</a></td>';
}
});
});
p += '</tr>';
每张照片的变量p
都是递增的,问题是当 EventPhoto.find(...) 结束并且该值未签名时,会丢失所有添加的内容(我检查过)。不幸的是,我无法在这个回调函数中开发其余的代码,那么即使没有“超级”运算符或类似的东西,分配这个值的方法是什么?
谢谢!