node.js - 函数在完成nodejs中另一个文件中的代码之前返回?
问题描述
我有一个模型中的函数,我从我的控制器调用该模型,但在完成模型中代码的执行之前,它返回到控制器,并在再次完成控制器中的代码后返回模型执行剩余的代码。在下面的代码中,当我调用一个函数 od 模型时,它执行 a 行并继续到 b 行,但在 b 行之后,它不会转到 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);
}
})
}
解决方案
推荐阅读
- php - PDO::__construct(): php_network_getaddresses: getaddrinfo failed: nodename or servname provided, or not known
- javascript - 单击时更改参数“顶部”的 JS 代码
- python - 如何通过变量名将图形保存在 matplotlib 中?
- python - 如何连接从 csv 文件读取的节点?
- python - 将标题和文本一起提取并写入 Excel 表格
- c - C:将一维字符指针数组存储到二维字符数组中
- phpmyadmin - xampp phpmyadmin 错误 - #1932 - Xampp 7.3.8 新版本的引擎中不存在表 'phpmyadmin.pma__userconfig'
- javascript - Ramda 中的简单无点函数
- javascript - Ajax 获取文件 - 内容在哪里加载?
- vbscript - 是什么导致了我的 hta 文件中的视觉故障