我的代码中 async/await 有什么问题吗
Is there anything wrong with async/await in my code
用mysql2表达API
我想使用 async 和 await 从产品 table 中查询数据,但根本没有打印任何内容,不知道如何正确使用它。
exports.getAllTours = function(req, res) {
getTours()
.then(data => console.log(data))
.catch(err => console.log(err ));
}
async function getTours() {
var sql = "Select * from product_prd"
return new Promise(async function(resolve, reject) {
let [rows, fields] = await poolQuery(sql)
setTimeout(function() {
resolve(rows);
}, 500);
})
.catch(err => reject(err));
}
async function poolQuery(sql, args) {
return new Promise((resolve, reject) => {
promisePool.query(sql, args, (err, rows) => {
if (err)
return reject(err);
resolve(rows);
}).catch(err => reject(err));
});
}
我按照mysql2
的官方文档创建了这样的连接池
const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'localhost',
user: 'super',
port: '3307',
password: 'sohail',
database: '784413_wonder',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
// now get a Promise wrapped instance of that pool
const promisePool = pool.promise();
module.exports = promisePool;
我很确定有一个 SQL 错误,你无法弄清楚,因为 getTours
中的错误处理是错误的。
试试这个:
exports.getAllTours = function(req, res) {
getTours()
.then(data => console.log(data))
.catch(err => console.log(err ));
}
async function getTours() {
var sql = "Select * from product_prd"
return new Promise(async function (resolve, reject) {
let rows;
let fields;
try {
[rows, fields] = await promisePool.query(sql, args);
} catch (err) {
reject(err);
}
setTimeout(function () {
resolve(rows);
}, 500);
});
}
用mysql2表达API 我想使用 async 和 await 从产品 table 中查询数据,但根本没有打印任何内容,不知道如何正确使用它。
exports.getAllTours = function(req, res) {
getTours()
.then(data => console.log(data))
.catch(err => console.log(err ));
}
async function getTours() {
var sql = "Select * from product_prd"
return new Promise(async function(resolve, reject) {
let [rows, fields] = await poolQuery(sql)
setTimeout(function() {
resolve(rows);
}, 500);
})
.catch(err => reject(err));
}
async function poolQuery(sql, args) {
return new Promise((resolve, reject) => {
promisePool.query(sql, args, (err, rows) => {
if (err)
return reject(err);
resolve(rows);
}).catch(err => reject(err));
});
}
我按照mysql2
的官方文档创建了这样的连接池const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'localhost',
user: 'super',
port: '3307',
password: 'sohail',
database: '784413_wonder',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
// now get a Promise wrapped instance of that pool
const promisePool = pool.promise();
module.exports = promisePool;
我很确定有一个 SQL 错误,你无法弄清楚,因为 getTours
中的错误处理是错误的。
试试这个:
exports.getAllTours = function(req, res) {
getTours()
.then(data => console.log(data))
.catch(err => console.log(err ));
}
async function getTours() {
var sql = "Select * from product_prd"
return new Promise(async function (resolve, reject) {
let rows;
let fields;
try {
[rows, fields] = await promisePool.query(sql, args);
} catch (err) {
reject(err);
}
setTimeout(function () {
resolve(rows);
}, 500);
});
}