猿问

在构造方法中初始化 Promises 类字段

我在这里用存储库做了一个测试,这是测试:


export default class UserService {

    private userRepository: Repository<UserModel>;

    private connection: Connection;


    private async initialize(): Promise<any> {

        return createConnection()

        .then(v => this.connection = v)

        .then(_ => this.userRepository = this.connection.getRepository(UserModel))

      }


    constructor() {

    }


    public async findByUsername(username: string): Promise<UserModel> {

        let user: any;


        if(this.userRepository == undefined) {

            await this.initialize();

        }


        await this.userRepository.findOne({username: username}).then(v => user = v);

        return user;

    }


}

它正在工作,但 lint/TS 编译器说:类字段 userRepository 和 connection 未在构造函数方法中初始化。


好吧,但是这个字段是 Promise 类型的,并且构造函数是一个罪孽深重的方法,那么,我该如何让构造函数初始化这些字段呢?


阿晨1998
浏览 135回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答