我有一个服务,在构造函数中我正在运行一个方法来获取一些数据。 我可以看到数据,然后将其传递给预定义的变量。
像这样:
export class SentinelService {
configuration;
constructor() {
this.electronService.ipcRenderer.on('config' , function(event , data) {
this.configuration = data; // pass the data to configuration variable
console.log(this.configuration.name); // Check it ... I can see the value here
});
}
myMethod() {
// Try it here
console.log(this.configuration.name); // I get Undefined
};
...
虽然我已将值分配给'配置'变量,并且可以看到它已经从构造函数内部的方法传递,当我在另一个方法上尝试相同的东西时,我得到了未定义。
我该如何解决这个问题?
答案 0 :(得分:5)
使用箭头函数作为回调来保持类范围:
this.electronService.ipcRenderer.on('config' , (event , data) => {
this.configuration = data;
...
另外,请查看this以了解正常函数和箭头函数的不同之处。