node.js - Nodejs中返回值的问题
问题描述
返回值时我面临一个问题。
这是我返回值的函数:
async function createOrderId(bizId) {
const CustomerOrderModel = require('../models/CustomerOrder');
try {
var biz_id = bizId;
var year = new Date().getFullYear();
var total = 0;
total = await CustomerOrderModel.countDocuments({bizId:bizId}).exec();
var w_order_id = biz_id + 'OD' + year + (total+1);
return w_order_id;
} catch (e){
console.log(e);
}
}
在另一个 API 中,我调用了这个函数并想要这个 w_order_id。但我没有得到价值。
注意:当我调用这个函数时,我也尝试使用 async & await 来解决这个问题。但仍然没有获得价值。
请帮助我。
解决方案
尝试使用 Promise
return new Promise((resolve, reject)=>{
var biz_id = bizId;
var year = new Date().getFullYear();
var total = 0;
total = await CustomerOrderModel.countDocuments({bizId:bizId}).exec((err, result)=>{
if(err){
reject(err)
} else {
var w_order_id = biz_id + 'OD' + year + (total+1);
resolve(w_order_id);
}
});
})
推荐阅读
- dynamics-crm - 在动态 crm 2016 的自定义查找视图中未找到任何结果
- ios - 在 AutoLayout - iOS 中,约束计数始终为零 ( 0 )
- java - API 17:如何在数组中存储 List
- > 安卓工作室
- r - 绘制带有旭日形视图的 rpart 决策树模型
- sql - 当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。- 声明使用 SPLIT_ROW
- ruby-on-rails - 从当前时间开始选择 15 分钟
- c# - 使用 exe 编译非托管 DLL
- html - 不应该进行 Flex 子包装;flex-wrap: nowrap 不工作
- c# - JetBrains.ReSharper.TaskRunnerFramework.dll 中的“System.IO.EndOfStreamException”
- sparql - SPARQL:如何将 owl:equivalentClass 转移到 rdfs:subClassOf (owl:Restriction) 属性?