Node.js 如何使用express.js获取两个收集文档并计算点数?
如果要使用两个函数的结果,然后将其用于进一步的计算,则可以使用promises 在本例中,您可以并行执行这两个异步函数。它可以像这样Node.js 如何使用express.js获取两个收集文档并计算点数?,node.js,express,Node.js,Express,如果要使用两个函数的结果,然后将其用于进一步的计算,则可以使用promises 在本例中,您可以并行执行这两个异步函数。它可以像这样 totalprice= userdata[i].cost/parameterObject.pointvalue) * point); 这里,asyncFunc1()将是您的第一个查找函数 asyncFunc2()将是第二个查找函数 结果[0]和结果[1]将分别是函数的结果 稍后,您可以使用结果进行进一步计算 希望这有帮助 exports.show==函数(req
totalprice= userdata[i].cost/parameterObject.pointvalue) * point);
这里,asyncFunc1()将是您的第一个查找函数
asyncFunc2()将是第二个查找函数
结果[0]和结果[1]将分别是函数的结果
稍后,您可以使用结果进行进一步计算
希望这有帮助 exports.show==函数(req,res){
Promise.all([
asyncFunc1(),
asyncFunc2(),
])
.then(function(result){
// result is an array and has the response of the functions which is
// result[0] and result[1]
···
// you can manipulate the result of the functions here
})
.catch(function(err){
// Receives rejection/error among the Promises
···
});
var userdata=[{
“产品代码”:“9563456789”,
“成本”:“1000”
}, {
“产品代码”:“8756348947”,
“成本”:“5600”
}]
var参数object=[];
Parameter.find().exec(函数(错误,参数){
如果(错误){
返回句柄错误(res,err);
}
//我要将参数[0]。值推送到parameterObject
parameterObject.push({
pointvalue:参数[0]。值
});
返回FindProducts(参数对象、函数(数据){
控制台日志(数据);
});
});
函数FindProducts(parameterObject,回调){
对于(var i=0;ihelp me out@newbee devi如果您希望有人阅读您的代码,了解您的问题并提出解决方案,请花时间至少格式化它!这就像在任何IDE/编辑器中敲3下键盘一样,或者可能重复@DrakaSAN,您能帮我吗out@mojo:是的,我可以,但是如果你花时间阅读副本,或者任何关于异步编程,您应该知道错误在哪里。您对“plz giv me ze codzzz”的态度根本没有帮助。不运行此函数Product.find(),我添加了console.log(userdata[i].productcode)。它在console中继续只打印9563456789值您将控制台放在哪里了?在while loopwhile中(i
Promise.all([
asyncFunc1(),
asyncFunc2(),
])
.then(function(result){
// result is an array and has the response of the functions which is
// result[0] and result[1]
···
// you can manipulate the result of the functions here
})
.catch(function(err){
// Receives rejection/error among the Promises
···
});
exports.show = = function(req, res) {
var userdata = [{
"productcode": "9563456789",
"cost": "1000"
}, {
"productcode": "8756348947",
"cost": "5600"
}]
var parameterObject = [];
Parameter.find().exec(function(err, Parameters) {
if (err) {
return handleError(res, err);
}
// i want to push Parameters[0].value to parameterObject
parameterObject.push({
pointvalue: Parameters[0].value
});
return FindProducts(parameterObject, function(data) {
console.log(data);
});
});
function FindProducts(parameterObject, callback) {
for (var i = 0; i < userdata.length; i++) {
var totalprice = 0;
findProduct(i, parameterObject, function(i, price) {
totalprice += price;
if (i <= userdata.length) {
return callback({
"userid": "myuserid",
"total": totalprice
});
}
});
}
}
function findProduct(i, parameterObject, callback) {
Product.find({
'productcode': userdata[i].productcode
}).exec(function(err, Products) {
if (err) {
return handleError(res, err);
}
var point = 0;
if (!Products) {
point = 0;
} else if (Products[0].product.point > 0) {
point = Products[0].product.point;
}
if (point > 0) {
// here you can now get the value of userdata[i].cost
// here you can now get the value of parameterObject
totalprice = userdata[i].cost / parameterObject[0].pointvalue * point;
return callback(i, totalprice);
}
});
}
};