如題,
目前已採用過 callback方式 及 await方式,
但還是都會先跳過mysql 的 query,
執行順序為
我在這1 -> 我在這3 -> 我在這2 -> 我在這4 -> 我在這5
想請問如何解決此問題
讓順序變成
我在這1 -> 我在這2 -> 我在這3 -> 我在這4 -> 我在這5
程式碼
Router.get('/website', async (req, res) => {
//mongoDB
let exam = []
await mongoDB.find({ _id: id }, (err, results) => {
.....
}).catch(err => console.log(err))
//MysqlDB
let sql = "select ... from ... where..."
console.log("我在這1")
mysqldb.query(sql, (err, result) => {
console.log("我在這2")
if (err)
throw err;
}) //end query
console.log("我在這3")
await mongoDB.find({ _id: id }, (err, results) => {
console.log("我在這4")
if (err) {
return res.status(400).json({ success: false, error: err })
}
}).catch(err => console.log(err))
console.log("我在這5")
})
Thanks for your help.
await mysqldb.query(sql, (err, result) => {
console.log("我在這2")
if (err)
throw err;
}) //end query
不行的話
就自己包成 promise
const mysqlQuery = () => {
return new Promise((resolve) => {
mysqldb.query(sql, (err, result) => {
if (err) {
throw err;
}
resolve(result);
})
})
}