互連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/)。 –