【发布时间】:2016-12-02 19:35:45
【问题描述】:
我有一个执行数据库查询的 sequelize 实例方法:
getPropertyDays() {
const queryString = `
SELECT
state
FROM property_days
WHERE
DATE(day) = CURDATE() AND
property_id = :propertyId;`;
const replacements = {propertyId: this.id};
return this.sequelize.query(queryString, {replacements: replacements, type: sequelize.QueryTypes.SELECT});
},
被 getter 调用:
getterMethods: {
propertyState() {
var self = this;
const blockedDay = 'x';
const unavailableDay = 'u';
this.getPropertyDays().then(function(result) {
var state = result[0]['state'];
if (self.prospect || state == unavailableDay) {
return 'unavailable';
}
if (state == blockedDay) {
return 'occupied';
}
else {
return 'available';
}
});
}
},
问题是从 getter 返回的结果是未定义的,因为他无法在返回之前解决 promise。
由于我没有桌子的模型,我该如何解决这个问题?已经玩了一天了!
非常感谢。
【问题讨论】:
标签: node.js asynchronous promise sequelize.js getter