【发布时间】:2021-10-18 07:47:56
【问题描述】:
async add(model: IUser): Promise<User | null> {
const { username, role, password, email } = model;
const user = new User();
user.username = username;
user.role = role;
user.password = password;
user.email = email
const userRepository = getRepository(User);
try {
const savedUser = await userRepository.save(user);
return savedUser;
} catch (e) {
console.log(e);
return Promise.reject(new APIError('User Already exists', Err.EmailAlreadyExists));
}
以上代码用于将用户数据保存到mysql数据库中。它工作得很好。但是返回Promise的目的是什么,因为async函数默认返回一个promise
【问题讨论】:
-
是的,你可以直接
throw new APIError(),因为它会返回一个 Promise 拒绝。 -
你的意思是catch中的那个位吗?是的,你可以抛出一个异常,但不管怎样都可以。
-
顺便说一句
const savedUser = await userRepository.save(user); return savedUser;- 没意义...只是return userRepository.save(user);
标签: javascript node.js typescript promise