electron报错Error: Object has been destroyed

news/2024/11/29 6:30:31/

问题描述

在 Electron 中,当一个窗口被销毁后,与该窗口相关联的 JavaScript 对象也会被销毁,再次访问已被销毁的窗口对象时,会导致 Error: Object has been destroyed 错误。
例如之前在写多窗口pinia状态同步 / 多窗口样式同步的时候,有如下代码:

  • 假如样式同步的过程中,我已经取到了当前所有的窗口,但在我循环通知其他窗口更新的过程中,某个窗口关闭了[销毁了],此时就会报错
    在这里插入图片描述

解决方案

为了避免该错误的发生,需要在窗口对象被销毁时,取消订阅所有与该窗口相关的事件,并在需要访问窗口对象时,先检查窗口对象是否已经被销毁。
1.创建窗口的时候,补充销毁监听:

  currentWindow.on("closed", () => {// 在窗口对象被关闭时,取消订阅所有与该窗口相关的事件currentWindow.removeAllListeners();currentWindow= null;});

2.调用窗口方法前,先进行销毁判断

 !currentWin.isDestroyed

在这里插入图片描述


http://www.ppmy.cn/news/666637.html

相关文章

iPad 上有哪些实用得令人惊艳的 App?

http://www.zhihu.com/question/22678622 宋玖,俗世一粒微尘! 陈广兴、OPEN曹、吕归尘 等人赞同 ipad上没有自带的计算机吧 这个就是个计算器,而且它厉害在于你可以在上面手写算式,真的是手写,不是键入 然后他给你计算…

这些“黑话”只有PCB设计制造内行人才懂!附PCB术语及英文对照

▍ Test Coupon:俗称阻抗条 Test Coupon,是用来以 TDR (Time Domain Reflectometer 时域反射计) 来测量所生产的 PCB 的特性阻抗是否满足设计的要求,一般要控制的阻抗有单端线和差分对两种情况,所以 test coupon 上的走线线宽和线…

什么是HDR技术?HDR10、HDR400有什么区别?为什么售价3万元的lg的EP950系列显示器只有HDR400认证?

商品界面标注的HDR10究竟是什么? 标注的HDR400、HDR600又是什么? 为什么lg的顶级OLED面板仅达到HDR400标准? 什么是HDR? 高动态范围图像(High-Dynamic Range,简称HDR),相比普通…

Android Multimedia框架总结(五)多媒体基础概念

转载请把头部出处链接和尾部二维码一起转载,本文出自: http://blog.csdn.net/hejjunlin/article/details/52431887 上篇中介绍了MediaPlayer从prepare到playback的其他过程,但是很多的一些音视频的基础概念可能还不是很清楚,今天…

Web端与移动端接入萤石云平台的视频数据

前言 因为项目需要在Web和App上展示实时视频流信息,所以之前做项目时尝试了很多方法。有用vlc插件播放的(由于使用到了插件,所以安卓App、微信小程序都不能显示视频,最后也放弃了),也有使用海康威视Web开发包开发的。但是最简单的…

完美国际真数苹果_苹果被破解!iPhone也能用上安卓了

今天,老牌越狱团队CorelliumHQ在推特上放出了一则视频,瞬间引爆了整个越狱社区:视频中,越狱团队在iPhone 7上成功安装了Android 10,打破了两个系统间十余年的界限。 尽管CorelliumHQ表示,目前这一套越狱方案…

Android 各版本演变特性整理

目录 官网: Android 12(S) Android 11(R) Android 10(Q) Android 9.0 (P) Android 8.0 (O) Android 5.0 Android 6.0 Android 7.0 官网: 版本介绍Android Releases | An…

emby ios 收费_点播、直播一条龙,使用Jellyfin打造最强媒体中心(篇一)

点播、直播一条龙,使用Jellyfin打造最强媒体中心(篇一) 2019-07-14 17:20:54 415点赞 5732收藏 407评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情 创作立场声明:各位蓝光原盘大神求放过~~ 前言 去年8月,我在张大妈上…