在继续执行其余的POST请求之前,我需要进行数据库调用并等待响应(在这种情况下,等待诺言得到实现)。
app.post("/charge", (req, res) => {
var user_stripe_id = await queries.get_stripe_id_by_email(req.body.token.email);
}
但是我无法等待查询,因为我不在异步函数中。如何使app.post
异步?
在其他路线上,我已经这样做
app.get('/', async function (req, res) {
const leagues = await distinctLeagues();
res.render('home', { leagues: leagues });
});
但是我想知道如何使用箭头函数语法。
答案 0 :(得分:3)
您可以在es6中创建一个async
函数,如下所示:
app.post("/charge", async (req, res) => {
var user_stripe_id = await queries.get_stripe_id_by_email(req.body.token.email);
}
这是异步等待的理想用法,在try-catch中使用它。由承诺解决的值将分配给quote
,如果承诺被拒绝,将执行catch块。
async function main() {
try {
var quote = await getQuote();
console.log(quote);
} catch (error) {
console.error(error);
}
}