Я пытаюсь создать сервисный слой поверх монго. У меня есть объект User
, который имеет массив ссылок Achievements
.
После того, как я аутентифицировал пользователя с помощью JWT или каким-либо другим способом, я вхожу на уровень службы и запрашиваю отношение следующим образом.
findForUser(userId: string | Types.ObjectId): Promise<Achievement[]> {
return new Promise((resolve) => {
UserSchema.findOne({ _id: userId },
async (err: any, user: User) => {
const AchievementMap: Achievement[] = [];
if (err) throw new Error(err);
user.achievements?.forEach((a) => {
// @ts-ignore
AchievementMap.push(a);
});
resolve(AchievementMap);
});
});
}
Мой вопрос действительно таков: каков подход async/await к возврату результата метода обратного вызова, переданного в UserSchema.findOne
?