打印来自承诺地图的结果



大家好,我有 2 种方法。

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);
})
}

我想打印 checkVenueAvailability 的结果 mengajukan_event。如何实现这一点。我上面的代码只是返回错误。谢谢。

你没有返回任何东西。只需返回Promise.all的承诺:

return Promise.all(venues.map(venue => {
//  ^^^^^^

另请注意,现在有具有基于承诺的 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没有用于任何东西。

最新更新