mongodbfindコールバック関数から外部変数に値を設定する必要があるときに奇妙な問題に直面しています。例えば:
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(...)が終了し、値が署名されておらず、追加されたすべてのコンテンツが失われることです(チェックしました)。残念ながら、このコールバック関数内で残りのコードを開発することはできません。「スーパー」演算子などがない場合でも、この値を割り当てる方法は何ですか。
ありがとう!