大家好,我有两种方法。
checkVenueAvailability(venues) {
var replaced = venues.replace(/\t/g, "");
var venues = replaced.split(',');
var length = venues.length;
Promise.all(venues.map(venue => {
return new Promise((resolve, reject) => {
pool.query("SELECT * FROM peminjaman_venue WHERE nama_venue = ?", venue,
function (err, rows, fields) {
if (err) {
return reject(err);
}
return resolve(rows);
})
})
}))
}
和
mengajukan_event(req, res) {
helper.checkVenueAvailability(req.body.venue_1)
.then(function (result) {
console.log(result);
}).catch(function (err) {
console.log(err);
})
}
我想在mengajukan_event中打印checkVenueAvailability的结果。如何实现这一目标。我上面的代码只返回错误。谢谢。
最佳答案
您没有返回任何东西。只需从 Promise.all
返回 promise 即可:
return Promise.all(venues.map(venue => {
// ^^^^^^
<小时/>
另请注意,现在有带有基于 Promise 的 API 的数据库适配器可用。或者,如果您无法使用,您可以使用 util.promisify
.
const promiseQuery = util.promisify(pool.query);
然后
checkVenueAvailability(venues) {
var replaced = venues.replace(/\t/g, "");
var venues = replaced.split(',');
return Promise.all(venues.map(venue => promiseQuery("SELECT * FROM peminjaman_venue WHERE nama_venue = ?", venue));
}
(我还删除了 var length =venues.length;
因为 length
没有用于任何用途。)
关于javascript - 从 promise 图打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50714579/