在Sequelize中,作为属性的一部分,使用异步的getter/setter。

7 浏览
0 Comments

在Sequelize中,作为属性的一部分,使用异步的getter/setter。

在Sequelize中,我可以将属性的getter定义为异步函数吗?

在getter中,我应该从另一个表中检索一个值,我已经在模型定义中尝试了以下代码:

...

bio: {

type: Sequelize.STRING,

get: async function() {

let bio = this.getDataValue('bio');

if (bio) {

let bestFriend = await db.models.User.findById(this.getDataValue('BestFriendId'))

if(bestFriend){

bio += ` 最好的朋友:${bestFriend.name}。`;

}

console.log(bio)

return bio;

} else {

return '';

}

}

},

...

通过日志,我可以读取到正确的个人简介,例如:Born yesterday. Love to read Best friend: Markus

但是我检索到的对象在bio属性中是一个空对象。

我猜这是因为不支持异步函数,我错了吗?

我如何在不使用异步函数的情况下实现这个功能?

0