互连ipcRenderer和ipcMain当我已经配置在电子CLI角,我必须在那里执行该intercomunicate ipcRenderer和ipcMain的功能的链接:错误在电子
HTML:
<a (click)="check()"> click </a>
组分:
constructor(private _e: ElectronService) { }
check() {
this._e.ipcRenderer.send ('conn', 'round');
this._e.ipcRenderer.on ('conn-st', (event, args) => {
console.log (args);
});
}
main.js(电子):
ipcMain.on ('conn', function (event, args) {
event.sender.send ('conn-st', 'trip');
});
问题是,当你点击一次,你做了一次,但当你再次点击它连续做3,然后4,5等等。
,并引发在到达11这个错误:
(node:23006) Error: Possible EventEmitter memory leak detected. 11 conn-st listeners added. Use emitter.setMaxListeners() to increase limit
如何终止ipcRenderer和ipcMain之间的联系?
实际上没有“连接”,就像UNIX套接字一样,Electron会向所有侦听器发出一个信号,然后触发所定义的函数。该错误消息似乎只是说有11个侦听器已创建,它们都听同一个“套接字”。 –
如何重新启动听众? –
“重新启动”可能是错误的词,因为这意味着他们会在此后继续收听。但是每个使用'ipcRenderer.on()创建的监听器()都会创建一个唯一的id,并且可以通过ipcRenderer.removeListener(channel,listener);'来移除。但请参阅[Electron doc](https://electron.atom.io/docs/api/ipc-renderer/)。 –