2
における非同期テーブルのクエリを:Iは、DBクエリを実行sequelizeインスタンスメソッドを有する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});
},
ゲッターによって呼び出さ:
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から返される値は未定義です。返す前に約束を解決できないからです。
私はテーブルのモデルを持っていないので、どうすればこの問題を解決できますか?これはすでに1日前から行っています!
ありがとうございます。
私の実験ではありません。たとえば、モデルのtoJSONは、約束のプロパティーと約束されている解決済みの値を出力しますが、これはそれほど有用ではありません。 – Kyle