Строки 5-8 почти идентичны строкам 10-13, так что вы можете выделить их в отдельную функцию:
async function saveUserToRepo(repo, userRegisterDto: UserRegisterDto, user) : Promise {
const newItem = repo.create({
...userRegisterDto,
user,
});
await repo.save(newItem );
}
async createUser(userRegisterDto: UserRegisterDto): Promise<UserEntity> {
const user = this.userRepository.create({ ...userRegisterDto });
await this.userRepository.save(user);
await saveUserToRepo(this.userAuthRepository, userRegisterDto, user);
await saveUserToRepo(this.userSalaryRepository, userRegisterDto, user);
return user;
}
И если все в порядке, то оба этих средних сохранения параллельно работают безвызывая какие-либо проблемы (вам нужно быть судьей в этом), вы можете использовать Promise.all
, чтобы отслеживать их параллельно:
async createUser(userRegisterDto: UserRegisterDto): Promise<UserEntity> {
const user = this.userRepository.create({ ...userRegisterDto });
await this.userRepository.save(user);
await Promise.all([
saveUserToRepo(this.userAuthRepository, userRegisterDto, user),
saveUserToRepo(this.userSalaryRepository, userRegisterDto, user),
]);
return user;
}