in model.findone私は3つの要素からなる配列を取得しています。他の部分では、私は各項目をループしています&その特定の項目のオファーヘッドです。deferred.resolve()はforループ内の最後の要素を反復していません
しかし、私はただ2つのオファー頭を得ることができます。最後のオファー頭を取り出すことはできません。 私のコードに問題はありますか?
function getOfferingsHeads(id) {
var deferred = Q.defer();
var offeringHeads = [];
model
.findOne({ _id: id })
.exec(function (err, item) {
if(err) {
console.log(err);
deferred.reject(err);
}
else {
// deferred.resolve(item.offerings);
// var offeringsList = [];
// offeringsList = item.offerings;
for (var i = 0; i < item.offerings.length; i++) {
executivesModel
.findOne({offName: item.offerings[i] })
.exec(function(err1, item1) {
if(err1){
console.log(err1);
deferred.reject(err1);
}
else{
offeringHeads.push(item1.offHead);
deferred.resolve(offeringHeads);
}
});
}
}
});
return deferred.promise;
}