我想在功能塊外填充一個陣列
app.get('/getpackages/:dateStart/:dateEnd/:limit', function (req, res) {
var xlsSourceFilesRetrievedTsdz = []
var xlsSourceFilesRetrievedSvn = []
var dateStart = req.params.dateStart;
var dateEnd = req.params.dateStart;
var limit = Number(req.params.limit);
let sql = 'SELECT * FROM summary_dz WHERE Start != "" AND Start BETWEEN ? AND ? LIMIT ?'
db.query(sql, [dateStart,dateEnd,limit], function (err, results) {
if (err) throw err;
for (const counter in results) {
xlsSourceFilesRetrievedTsdz.push(results[counter].XlsSourceFile);
}
// console.log(xlsSourceFilesRetrievedTsdz)
});
console.log(xlsSourceFilesRetrievedTsdz)
我要填xlsSourceFilesRetrievedTsdz。我寫的有什么問題嗎?我得到一個空陣列。注釋塊內的console.log給出了想要的結果如何從塊外獲得?
uj5u.com熱心網友回復:
這樣做應該有效:
app.get('/getpackages/:dateStart/:dateEnd/:limit', async (req, res) => {
var xlsSourceFilesRetrievedTsdz = []
var xlsSourceFilesRetrievedSvn = []
const promiseQuery = (sql, dateStart, dateEnd, limit) => {
return new Promise((res, rej)=> {
db.query(sql, [dateStart,dateEnd,limit], function (err, results) {
if (err) rej(err);
res(results)
});
})
}
const sql = 'SELECT * FROM summary_dz WHERE Start != "" AND Start BETWEEN ? AND ? LIMIT ?'
const dateStart = req.params.dateStart;
const dateEnd = req.params.dateStart;
const limit = Number(req.params.limit);
const results = await promiseQuery(sql, dateStart, dateEnd, limit)
for (const counter in results) {
xlsSourceFilesRetrievedTsdz.push(results[counter].XlsSourceFile);
}
console.log(xlsSourceFilesRetrievedTsdz)
}
我在這里所做的是將整個事情包裝在一個 Promise 中并將其回傳以等待結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/466644.html
