にipcRendererとipcMainを相互接続するとき、私はそれがipcRendererとipcMainをintercomunicate機能を実行するリンクを有する:エラーIは電子でCLI角度設定されている電子
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');
});
問題は、一度クリックすると1回だけ行いますが、もう一度クリックすると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人のリスナーが作成され、すべてが同じ「ソケット」を聴いているとしか聞こえません。 –
そのリスナーを再起動するにはどうすればよいですか? –
"Restart"は間違った単語ですしかし 'ipcRenderer.on();'を使って(作成された)すべてのリスナーは一意のIDを作成し、 'ipcRenderer.removeListener(channel、listener);'で削除することができます。しかし、[Electron doc](https://electron.atom.io/docs/api/ipc-renderer/)を参照してください。 –