1 回答

TA貢獻1866條經驗 獲得超5個贊
async據我了解,您已經使用and包裝了導出的函數await:
module.exports = function(id) {
return new Promise((resolve, reject) => {
const pool = require('../loaders/pool.js')();
pool.query(
"SELECT * FROM dealerships WHERE id = '" + id + "';",
(err, res) => {
if (err) {
console.error(err.stack);
reject(err);
}
else {
resolve(res.rows[0]);
}
}
);
});
};
所以現在只需在調用代碼中使用asyncand :await
async function getData() {
const dealership = await require('../models/getDealershipById.js')(id);
const dealershipLeads = await require('../models/getLeadsByDealershipId.js')(dealership.id);
const dealershipStaff = await require('../models/getStaffByDealershipId.js')(dealership.id);
}
getData()
重要提示:作為旁注,請避免"SELECT * FROM dealerships WHERE id = '" + id + "';",因為這是一個真正糟糕的安全反模式,如果id未正確清理,它很容易允許 SQL 代碼注入。pool.query("SELECT * FROM dealerships WHERE id = ?", [id], ...)如果您的驅動程序允許,請使用類似的東西,或者將其替換為允許的驅動程序或包裝器。
添加回答
舉報