Я хочу, чтобы мой электронный интерфейс отправлял данные, предоставленные пользователем, внутреннему интерфейсу через IPC и обрабатывал данные бэкэндом, но также уведомлял интерфейсный модуль о ходе работы, поэтому я прочитал в документации, что для отправки материала, который яследует использовать win.webContents.send()
, поэтому я использовал его, но в строке, где он используется, выдается UnhandledPromiseRejectionWarning: Error: Object has been destroyed
.
let win: BrowserWindow
app.on('ready', () => {
win = new BrowserWindow({ width: 600, height: 400 })
win.loadFile(`/${__dirname}/gui.html`)
})
let sc: Screenshooter
ipcMain.on(
'fire',
async (
event: { sender: { send: (channnel: string, msg: string) => void } },
e: { url: string; args: object; pauseBefore: boolean }
) => {
sc = new Screenshooter(e.url, e.args)
event.sender.send('status', 'preparing')
await sc.prepare().catch(errorExit)
win.webContents.send('status', 'ready') // UnhandledPromiseRejectionWarning: Error: Object has been destroyed
// ...
// more sending contents and operating on object
}
}
)
function errorExit(e: any) {
console.error(e)
dialog.showErrorBox('Error', 'Error: ' + e)
process.exit(1)
}
Почему win.webContents.send
выдает ошибку en и как я могу это исправить?