Я определил библиотеку функций, как показано ниже, чтобы я мог вызывать их динамически.Я вызываю функцию p10 в модуле ниже
module.exports = {
p3: async function(mongo_db,data){
mongo_db.collection('release', async function(err,coll){
for(var i = 0; i <= data.searches.length-1; i++) {
var rlsId = data.searches[i].releaseId;
//console.log("RELEASE ID " + rlsId);
var tdcId = data.searches[i].tdcId;
if(rlsId !== null || rlsId !== undefined){
result = await coll.findOne({"_id":ObjectId(rlsId)});
if(result){
//console.log("this is data searches for index " + i+ " " + JSON.stringify(data.searches[i])
// + " and data.searches " + JSON.stringify(data.searches) + " and this is result " + JSON.stringify(result));
data.searches[i].releaseId = "release::" + result.initiativeId + "::" + result.name;
data.searches[i].tdcId = "testdachar::" + tdcId;
var reservLst = data.searches[i].reservationIds;
}
}
}
return data
//data_cb(data);
//cb()
})
//return data
},
p8: async function(mongo_db, data){
mongo_db.collection('reservation',async function(err,coll){
for (var i =0 ; i< data.searches.length; i++){
var reservLst = data.searches[i].reservationIds;
for (var j=0; j<reservLst.length; j++){
var reservDoc = await coll.findOne({"_id":ObjectId(reservLst[j])});
if(reservDoc){
data.searches[i].reservationIds[j] = "cardreserve::" + reservDoc.accountId;
}
}
}
return data;
})
},
,
p10: async function(mongo_db, data, data_cb){
module.exports.p3(mongo_db,data).then(datax => {module.exports.p8(mongo_db,datax)}).then(data => {data_cb(data)}).catch(err => {console.log("ERROR " + err)});
}
}
Дело в том, что мне нужно, чтобы эти функции выполнялись последовательно.Я разбил их на разные функции.
Возвращаемая ошибка:
(узел: 17419) UnhandledPromiseRejectionWarning: TypeError: Невозможно прочитать 'поиски' свойств неопределенных
Это похоже наФункция p8 не может работать с данными, возвращаемыми p3, потому что она кажется пустой.Я полностью сбит с толку.Пожалуйста, помогите!