我在电子中配置了cli角,并且我有一个链接,它执行一个将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之间的连接?
发布于 2017-03-29 13:22:47
该错误消息只说明,已创建了11个“套接字”侦听器(如UNIX中的监听器)。每个侦听器都创建一个惟一的ID,该ID在创建侦听器时返回。在此基础上,可以这样删除一个特定的侦听器:
// Create a listener.
var myListener = function (event, args) {}
ipcRenderer.on("channel", myListener);
// Delete only this one by its ID:
ipcRenderer.removeListener("channel", myListener);但是,您也可以删除为套接字创建的所有侦听器,如下所示:
// Create a few listeners.
var myListener0 = function (event, args) {};
var myListener1 = function (event, args) {};
var myListener2 = function (event, args) {};
var myListener3 = function (event, args) {};
//
ipcRenderer.on("channel", myListener0);
ipcRenderer.on("channel", myListener1);
ipcRenderer.on("channel", myListener2);
ipcRenderer.on("channel", myListener3);
// Delete all listeners for socket "channel".
ipcRenderer.removeAllListeners("channel");这也包括在电子文档,特别是这里。
发布于 2019-07-02 03:49:58
根据电子文档文档,所接受的答案是不正确的。侦听器是一个函数,应该删除如下所示。
// Create a listener
let listener = (event, args) => {}
ipcRenderer.on("channel", listener );
//Delete the listener
ipcRenderer.removeListener("parse-cm-request", listener);https://stackoverflow.com/questions/43073820
复制相似问题