嗯,我是node.js的新手。当我尝试从数据库中获取一些数据时,API将在流程完成之前返回。以下是我们的代码示例,
this.getData = (userId, status, parameters, callback) => {
console.log('getData:-:Start');
const finalArray = [];
async.series([
(cb) => {
console.log('getData:-:Fetch Data1:-:Start');
****************************************
***Fetch data using find and populate***
**************************************** {
if (!error) {
if (data.length > 0) {
***************
***More Code***
***************
const finalObject = {
*****************************
***Set data to finalObject***
*****************************
};
finalArray.push(finalObject);
}
console.log('getData:-:Fetch Data1:-:End');
} else {
return cb(null, {
data: [],
status: {
message: 'No Data1',
status: '202'
}
});
}
}
return cb(error, null);
});
}, (cb) => {
console.log('getData:-:Fetch Data2:-:Start');
********************************
***Fetch data using aggregate***
********************************
if (!error) {
if (aggregateData.length > 0) {
async.eachSeries(aggregateData, function (aggregateItem, innercb) {
***************************
***Fetch data using find***
***************************
if (!err && findData.length > 0) {
***************
***More Code***
***************
const finalObject = {
*****************************
***Set data to finalObject***
*****************************
};
finalArray.push(finalObject);
}
}
innercb(null);
})
}, function () {
});
console.log('getData:-:Fetch Data2:-:End');
} else {
return cb(null, {
aggregateData: [],
status: {
message: 'No Data2',
status: '202'
}
});
}
}
return cb(error, null);
});
}], (err, data) => {
if (!err) {
data = finalArray
console.log('getData:-:data = ', data);
console.log('getData:-:finalArray:-:Final = ', finalArray);
callback(data, STATUS('SC200', 'Fetched data successfully'));
} else {
callback(STATUS('SC202', 'Error in fetching data', err));
}
});
};
在上述情况下,仅从cb
中的第一个async.series
(回调)获取数据。如何在第二个innercb
中包含来自与async.series
关联的cb
的数据?
我尝试看过类似的文章,但无济于事。抱歉,如果我的问题太天真了。感谢您的帮助。