首页 > 解决方案 > 返回一个 Promise,因为异步函数默认返回一个 Promise

问题描述

 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 的目的是什么,因为默认情况下异步函数返回一个 Promise

标签: javascriptnode.jstypescriptpromise

解决方案


但是返回 Promise 的目的是什么,因为异步函数默认返回一个 Promise

没有目的。实际上,

return Promise.reject(new APIError('User Already exists', Err.EmailAlreadyExists));

相当于

throw new APIError('User Already exists', Err.EmailAlreadyExists);

推荐阅读