как заставить $ beforeValidate дождаться завершения операции asyn c - PullRequest
0 голосов
/ 17 февраля 2020

Я хочу, чтобы $ beforeValidate ожидал завершения операции asyn c, поскольку он обновляет объект, чтобы он прошел проверку. Но в настоящее время $ beforeValidate завершает и отклоняет запись, так как она не ожидает завершения операции asyn c.

class Label extends Model {
 async $beforeValidate() {
  if(this.name === undefined){
    const res = await axios.get('/getSomeName')
    console.log(res.body)
    this.name = res.body
  }
 }
 static get jsonSchema () {
    return {
      type: 'object',
      required: ['name'],
      properties: {
        id: { type: 'integer' },
        name: { type: 'string' }
      }
    }
 }
}

Теперь, когда я вставляю метку с именем undefined, я вижу, что ошибка проверки возникает до того, как вызов API asyn c завершится

await Label.query().insert({name: undefined})

1 Ответ

1 голос
/ 18 февраля 2020

К сожалению $beforeValidate - синхронная операция.

Вы можете проверить это в официальной документации 1005 *. Даже есть проблема об этом.

...