Как правильно сделать асинхронный Mon goose post hook - PullRequest
0 голосов
/ 12 апреля 2020

У меня в приложении очень простой пост findOneAndDelete hook. Я использую этот хук для каскадного удаления всех документов, которые содержат идентификатор пользователя, когда этот пользователь закрывает свою учетную запись.

UserSchema.post('findOneAndDelete', async function({ _id }, next) {
  try {
    await Exercise.deleteMany({ user: _id });
    await Tag.deleteMany({ user: _id });
    await Template.deleteMany({ user: _id });
    await Workout.deleteMany({ user: _id });
  } catch (error) {
    console.log(error);
  }
});

Хук, кажется, работает именно так, как я хочу, но пометив хук как асинхронный c, я сталкиваюсь с приведенной ниже ошибкой в ​​моей настройке ESLint. Не похоже, что почтовые хуки должны возвращать обещания.

Promise returned in function argument where a void return was expected.

Я прочитал в документации goose (https://mongoosejs.com/docs/middleware.html#post -asyn c), что вы может связывать асин c почтовые хуки, последовательно вызывая next() внизу ваших функций. Но кажется, что это повторяется несколько раз, когда я могу выполнить sh в теле одной функции, помеченной как asyn c.

Мой вопрос: могу ли я игнорировать свой линтер? Или я неправильно использую этот хук, и я должен рефакторинг в соответствии с тем, что предлагает документация Mon goose?

Mon goose версия: 5.7.4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...