我无法通过其他方法访问类型脚本中的全局变量。
由于我已经在此方法中初始化了此“ initiatorOffer”全局变量
peerx.on('signal', function(data)
{
console.log("1");
console.log(JSON.stringify(data));
this.targetpeer = data;
**this.initiatorOffer = JSON.stringify(data); // i have initialized there**
console.log(this.initiatorOffer);
}
但是当我在同一文件的其他方法中获得此值时:
this._chatservice.clientconnected().subscribe(data => {
**console.log(this.initiatorOffer);** // getting value
})
我得到未定义的值。这是为什么?因为此变量是全局变量。
当我收到来自 this.chatservice.clientconnected()
的响应时调用的方法
服务器。
答案 0 :(得分:0)
我认为Angular没有考虑到peerx.on('signal',function(data)。中的更改的问题。您可以尝试使用ngZone https://angular.io/api/core/NgZone#ngzone
peerx.on('signal', function(data)
{
this.ngZone.run(() => {
console.log("1");
console.log(JSON.stringify(data));
this.targetpeer = data;
this.initiatorOffer = JSON.stringify(data); // i have initialized there**
console.log(this.initiatorOffer);
})
})
答案 1 :(得分:0)
您应按如下所示将函数转换为箭头函数:
""x" "y" "t" "id" "id2""
这是一个箭头功能。箭头函数是ECMAScript 6引入的一种短语法,可以与使用函数表达式的方式类似地使用。换句话说,您经常可以使用它们代替函数(foo){...}之类的表达式。但是它们有一些重要的区别。
例如,他们不绑定自己的值。
请参阅此链接:
What's the meaning of "=>" (an arrow formed from equals & greater than) in JavaScript?