Node JS 在 promise [duplicate] 中使用私有函数

Node JS using private function inside promise [duplicate]

提问人:Mr.P 提问时间:11/14/2023 更新时间:11/14/2023 访问量:24

问:

我有以下代码:

export class TestClass {

    #dbConnection;

    connectToDatabase = async () => {
        this.#dbConnection = mysql.createConnection({
            host: 'xx.xx.xx.xx',
            user: 'user',
            password: 'password',
            database: 'gtfs'
        });
        return await this.#dbConnection.connect();
    }

    doSomething = async () => {
        return new Promise((resolve, reject) => {
            this.#dbConnection.query(query, function (error, result) {
                if (err) reject(err);
                let privateThing = this.#doSomethingPrivate();
                resolve(privateThing);
            })
        });
    }

    #doSomethingPrivate = () => {
        return 'all good';
    }
}

let test = new TestClass()
test.connectToDatabase()
    .then(doSomething)
    .then((data) => {
        console.log(data);
    });

但是在里面,我实际上不能打电话,因为它是私人的。我该怎么做?doSomething#doSomethingPrivate

JavaScript 节点.js ecmascript-6

评论

0赞 jabaa 11/14/2023
doSomething是一种方法。您需要一个实例。它要么是,要么是.then(test.doSomething.bind(test)).then(() => test.doSomething())
1赞 VLAZ 11/14/2023
问题不在于私有,而在于 .使用箭头函数。jsbin.com/wijocovose/1/edit?js,console代码中还有其他错误会阻止它工作,但我认为这只是因为试图创建一个示例并且没有成功地使其代表真实代码。this

答: 暂无答案