Bạn nên chuyển từ callbacks sang Promises hoặc Async / Await, cái sau dễ đọc hơn rất nhiều:
async function retrieveValue(sort_order) {
if (sort_order === undefined) {
const db = await MongoClient.connect(dbUrl);
const dbo = db.db("HIDDEN");
const data = await dbo.collection("HIDDEN").findOne({}, {"sort": { sort_order: -1 }});
return data.sort_order + 1;
};
return sort_order;
}
CHỈNH SỬA (Với khối try-catch):
async function retrieveValue(sort_order) {
try {
if (sort_order === undefined) {
const db = await MongoClient.connect(dbUrl);
const dbo = db.db("HIDDEN");
const data = await dbo.collection("HIDDEN").findOne({}, {"sort": { sort_order: -1 }});
return data.sort_order + 1;
}
} catch (error) {
console.log(error);
}
return sort_order;
}
Về cơ bản, bạn đánh dấu hàm là async
khi bạn xác định nó và bất cứ khi nào bạn mong đợi một Promise
, bạn đánh dấu nó bằng await
để nó 'đợi' dữ liệu của bạn.