У меня есть функция, которая есть в модели, и я вызываю эту модель из моего контроллера, но перед завершением выполнения кода в модели она возвращается к контроллеру, а после повторного выполнения кода в контроллере возвращается к модели, чтобы выполнить оставшийся код. В приведенном ниже коде, когда я вызываю функцию od model, она выполняет строку a и продолжается до строки b, но после строки b она не будет go до строки c, вместо этого она возвращается к контроллеру и выполняет строку "vara = 0 ;» и далее коды контроллера и после завершения выполнения всех кодов снова возвращается модель и выполняет строку c и другие коды, пожалуйста, дайте мне несколько советов?
*Controller*
const invoicePdfResp = await PdfModel.generateInvoicePdf(invoiceId);
var a = 0;
*Model*
exports.generateInvoicePdf = async function(invoiceId){
a. await Invoice.findById(invoiceId, async function(err, doc) {
if(!err && doc!=null){
var title = doc.title;
var description = doc.description;
var interestAmount = doc.interest;
var grandTotalAmount = doc.totalAmount;
var totalAmount = grandTotalAmount - interestAmount;
var userName = '';
var itemList = [];
b. await User.findById(doc.created_by, async function(err1, doc1) {
c. if(doc1!=null){
userName = doc1.firstname + " " + doc1.lastname;
InvoiceItem.find({'invoice_id':doc.id}, async function(err2, doc2) {
if(doc1.length!=0){
itemList = doc2;
const pdfDoc = new PDFDocument({margin: 25});
//some pdf generation code
pdfDoc.end();
}
})
}else{
response = {
'message':'failed'
}
res.send(response);
}
});
}else{
response = {
'message':'failed'
}
res.send(response);
}
})
}