Ich habe eine sequelize Instanzmethode, die eine DB-Abfrage durchführt:Async Tabellenabfrage in sequelize Getter-Methode
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});
},
, die vom Getter aufgerufen wird:
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';
}
});
}
},
Das Problem ist, dass das Ergebnis, dass Wird vom Getter zurückgegeben, ist undefiniert, weil er das Versprechen vor der Rückkehr nicht lösen kann.
Da ich kein Modell für die Tabelle habe, wie kann ich dieses Problem lösen? Schon einen Tag lang dabei gewesen!
Vielen Dank.
Nicht wirklich von meinen Experimenten. Zum Beispiel gibt das toJSON des Modells die Eigenschaften des Versprechens gegenüber dem aufgelösten Wert des Versprechens aus, was nicht sehr hilfreich ist. – Kyle