我想从我从类构造函数调用的函数的回调中设置类成员变量。为了更具体些:我需要根据Redis INCR结果(每个客户端都有一个“全局”连接ID,因此我可以有多个节点)在Connection类构造函数中设置连接ID。无法从回调中设置类成员变量
这是代码。
class Connection {
constructor() {
client.incr('conn_id', (err, reply) => {
this.connID = reply;
});
}
}
var lovely = new Connection();
console.log(`lovely connID is ${ lovely.connID }`);
这是结果:lovely connID is undefined
不熟悉Redis,但是'client.incr'异步?这可能意味着在client.incr的回调有机会运行之前,您正在运行console.log行。 – rom99
请参阅http:// stackoverflow。COM /问题/ 34959257 /为什么,心不是 - 我 - 未来的价值可供现在。 –
你的问题不是你“不能从回调中设置类成员变量”,而是你“在设置之前不能访问类成员变量”。 –