多窗口pipe理:从窗口列表中删除窗口

描述

在我的电子程序中,我将所有可见的渲染器窗口存储在主进程中的单链表中。 当创build一个新的,它被添加到列表,但我不知道如何将它们从列表中删除时再次closures(找出哪个列表元素分别)。

代码在主stream程中

global.windows = new LinkedList(); function createWindow(p_URL, p_width, p_height, p_x, p_y, p_minWidth, p_minHeight, p_parent, p_icon) { // Create the browser window. let win; win = new BrowserWindow({width: p_width, height: p_height, minWidth: p_minWidth, minHeight: p_minHeight, parent: p_parent, icon: p_icon, show: false}); global.windows.insert(win); if(p_URL !== undefined) win.loadURL(p_URL) win.once('ready-to-show', () => { win.show() }); console.log("added: size = " + global.windows.getSize()); win.on('closed', () => { console.log("removeStart: size = " + global.windows.getSize()); // Dereference the window object let i; for(i = global.windows.getHeadNode(); i.getData() !== win; i = i.next); if(i >= global.windows.getSize()) console.log("Error"); else global.windows.removeAt(i); console.log("i: " + i); console.log("removeEnd: size = " + global.windows.getSize()); win = null; }); return win; } 

我试图通过遍历列表,直到我想要删除,然后删除它的元素。 当我现在执行程序,然后closures其中一个窗口,我得到以下错误。

 Uncaught Exception: Error: Object has been destroyed at Error (native) 

这是由行if(i >= global.windows.getSize())if(i >= global.windows.getSize()) closed 。 该行之前的日志命令会生成一个输出,但是在该行之后的日志命令不会执行任何操作。 没有元素从列表中删除。 我究竟做错了什么? 如何pipe理窗口可能有更好的方法吗?