Kin*_*ics 0 javascript asynchronous node.js
我的节点服务器上有这个请求处理程序.它有三个MongoDB查询,我希望在发送响应之前返回所有结果.
api.get('/getStats/:productID', (req,res)=>{
let data = {};
let dailySales = [];
let avgProduct = "";
let customers = [];
Sales.find({productID: productID}).then(
sales => {
dailySales = sales;
}
);
Products.find({}).then(
products => {
// Calculate Avg product here
avgProduct = result;
}
);
Customers.find({}).then(
customers => {
customers = customers;
}
);
data = {
dailySales,
avgProduct,
customers
};
res.json(data);
});
Run Code Online (Sandbox Code Playgroud)
但是运行它会返回
data: {
dailySales: [],
avgProduct: "",
customers: []
}
Run Code Online (Sandbox Code Playgroud)
即Mongo响应在数据运行之前返回.请问我该如何解决.谢谢
在发送实际响应之前等待所有承诺解决
const sales = Sales.find({productID: productID});
const allProducts = Products.find({});
const allCustomers = Customers.find({});
Promise.all([sales, allProducts, allCustomers])
.then(data => res.json(data));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |