Javascript 节点js事件发射器未激发
我有个问题,我的Eventemitter没有着火。我已经用谷歌搜索了这个问题,似乎我的代码顺序错了。。至少这是我的猜测。无论如何,不管我如何设置创建client.js类的顺序,它都不会触发 仅供参考,创建通过TCP/IP与服务器通信的electron应用程序。当客户端连接状态发生更改时,应触发“connection”(连接)事件以通知前端进行更改。其他事件如“错误”正在工作 我不知道这是否是足够的代码为您,只要告诉我,如果你需要更多 client.jsJavascript 节点js事件发射器未激发,javascript,node.js,sockets,electron,event-handling,Javascript,Node.js,Sockets,Electron,Event Handling,我有个问题,我的Eventemitter没有着火。我已经用谷歌搜索了这个问题,似乎我的代码顺序错了。。至少这是我的猜测。无论如何,不管我如何设置创建client.js类的顺序,它都不会触发 仅供参考,创建通过TCP/IP与服务器通信的electron应用程序。当客户端连接状态发生更改时,应触发“connection”(连接)事件以通知前端进行更改。其他事件如“错误”正在工作 我不知道这是否是足够的代码为您,只要告诉我,如果你需要更多 client.js 类客户端扩展events.EventEmi
类客户端扩展events.EventEmitter{
构造函数(主机、端口){
//正在设置客户端。。
超级();
this.host=host;
this.port=端口;
//等等。。。
this.client=new net.Socket();
//其他事件列表。。。
this.client.on(“connect”,this.connectEventHandler);
}
connectEventHandler(){
试一试{
this.status=“connected”;//我可以从main检查状态
this.tryreconnection=false;//客户端类的其他逻辑
this.emit(“connection”);//这是事件(不工作)
console.log(“应触发连接状态”);//此console.log正在工作
}捕获(错误){
console.log(错误);
这个.emit(“错误”,error);
}
}
}
main.js
//创建客户端
const client=新客户端(process.env.SERVER、process.env.PORT);
//当应用程序准备就绪时,客户端被告知连接到服务器
app.whenReady().然后(()=>{
createWindow();
应用程序打开(“激活”,功能(){
如果(BrowserWindow.getAllWindows().length==0)createWindow();
});
client.connect();
});
//当我在connectEventHandler中调用它时,错误事件工作正常
client.on(“错误”,(消息)=>{
console.log(“触发错误事件”);
对话框。showMessageBoxSync(主窗口{
标题:“费勒”,
讯息:讯息,,
});
});
//这部分不起作用
client.on(“连接”,()=>{
console.log(“新客户端状态:+client.status”);
main window.webContents.send(“客户端状态”,client.status);
});
即使我调用错误事件而不是连接事件,错误也会显示在我的应用程序中:
//来自client.js的代码
connectEventHandler(){
试一试{
this.status=“connected”;//我可以从main检查状态
this.tryreconnection=false;//客户端类的其他逻辑
//这部分被忽略了
本条为“发射”(“连接”);
//这部分是执行的
发出(“错误”,“这是一个测试错误”);
}捕获(错误){
console.log(错误);
这个.emit(“错误”,error);
}
}
来自最后一位代码(connectEventHandler)的响应:
这是怎么回事
谢谢 问题在于ConnectEventHandler,将此函数的逻辑放入客户端的构造函数后,每个事件都会被正确触发