我对TypeScript,Ionic和Cordova都很陌生。
在我的Ionic 4应用程序中,我尝试使用没有Ionic包装器的插件(sockets-for-cordova,https://github.com/blocshop/sockets-for-cordova)通过telnet发送一些数据包。 因此,我安装了Cordova插件,然后实例化了页面构造函数中的对象(暂时):
constructor(public navCtrl: NavController,
...)
{
....
if (typeof Socket === 'function') {
this.socket = new Socket();
this.socket.onData = this.socketOnData;
this.socket.onClose = this.socketOnClose;
this.ensureSocketOpen();
}
...
}
问题是.onData和.onClose回调:套接字的事件绑定到它们很好,但是一旦从套接字调用它们,它们就不再知道该对象,例如,如果socketOnData()具有像
this.SomeService.CallSomeMethod(..)
无法正确解析(this.SomeService
未定义)。我的理解是,this
在通过Socket的回调函数调用时会变成代码中的其他内容。
我显然不知道我在这里做什么,有人可以向我解释发生了什么吗?
编辑:现在,我知道了答案,并且可以理解,这与TypeScript / Javascript有关,而不是与Ionic与Cordova的交互作用更多,因此我可以看到这将是一个重复的问题。也许为了像我这样的其他人而努力使这些人彼此之间玩得很好,把它保留在这里会很有用。