我下面的类分级变量
8080
在我的protected _sliderValue: number = 50;
中,我正在连接到Websocket服务器。连接已建立,并且我正在从服务器接收消息,可以登录到控制台。
ngOnInit
现在我的问题是,如何在websocket连接的const connection = new WebSocket('ws://localhost:9999/webSocket');
connection.onmessage = function (e){
console.log('Server: ' + e.data);
};
事件中将类变量_sliderValue
分配给收到的e.data
?预先感谢。
答案 0 :(得分:1)
如果您指的是范围问题,请使用打字稿箭头功能来维护“ this”的正确范围或实例
private void TimerCallback(int x)
{
var y = ReturnInt(x);
Console.WriteLine("Value:" + y);
GC.Collect();
}
更多信息可以在这里找到 https://basarat.gitbooks.io/typescript/docs/arrow-functions.html
答案 1 :(得分:0)
两种可能性:
第一所学校(旧学校):声明
const connection = new WebSocket('ws://localhost:9999/webSocket');
let that = this;
connection.onmessage = function (e){
console.log('Server: ' + e.data);
that._sliderValue = e.data;
};
之所以可行,是因为that
是对this
的引用,尽管this
是其他东西,但是在函数内部仍然可以访问。
第二(现代):使用箭头功能
const connection = new WebSocket('ws://localhost:9999/webSocket');
connection.onmessage = (e) => {
console.log('Server: ' + e.data);
that._sliderValue = e.data;
};
箭头函数不创建自己的作用域,而是使用与其父函数相同的作用域。因此,您仍然可以访问this
。有关更多信息,请参见this。