async getTagId(name) {
try {
await db.transaction(async trx => {
let tagId;
if (tagId = await db('tags').where('name', name).first()) {
// return values here
}
});
} catch (error) {
logger.error('Error while creating records', error);
}
}
我有一个像这样的函数,我想知道如何在异步函数中的异步函数中返回一个值。
我唯一能找到的方法就是在主函数中返回一个Primise对象,如下所示:
async getTagId(name) {
return new Promise((resolve, reject) => {
try {
await db.transaction(async trx => {
let tagId;
if (tagId = await db('tags').where('name', name).first()) {
// resolve(tagId);
}
});
} catch (error) {
logger.error('Error while creating records', error);
}
});
}
通过这种方式,我可以resolve
异步函数内的值。
但是由于异步函数默认情况下会返回Primise对象,因此我认为它没有太多美感或太怪异,因此我寻求帮助。
英语不是我的母语;请原谅我的任何错误。