1 回答
TA贡献1854条经验 获得超8个赞
由于所有查询都是独立的,因此您可以使用 并行运行它们promise.all(),代码将如下所示:
app.post('/fetch-numbers', async (req, res) => {
Promise.all([
Clinic.countDocuments({}),
Dentist.countDocuments({}),
Booking.countDocuments({})
])
.then((docCounts) => {
const numbers = docCounts.reduce((a, b) => a + b, 0)
res.json(numbers);
})
.catch(err => res.json(err));
const numbers = docCounts.reduce((a, b) => a + b, 0)
res.json(numbers);
});
async-await您可以通过使用with进一步使其更具可读性Promise.all(),例如:
app.post('/fetch-numbers', async (req, res) => {
try {
const docCounts = await Promise.all([
Clinic.countDocuments({}),
Dentist.countDocuments({}),
Booking.countDocuments({})
]);
const numbers = docCounts.reduce((a, b) => a + b, 0)
res.json(numbers);
} catch(err) {
res.json(err);
}
});
添加回答
举报