electron报错Error: Object has been destroyed

问题描述

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

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

解决方案

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

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

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

 !currentWin.isDestroyed()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8133.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PHP语言-PDO接口】PDO接口执行脚本操作数据库

目录 前言: 一、 PDO简介 二、 PDO对象方法 前言: PDO:数据库抽象层 简介:PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,PDO解决了数据库连接不统一的问题。 一、 PDO简介 1、PDO简介 (1…

趣谈MySQL 多个%等模糊查询

一、建表并插入数据 1、创建一个people表 DROP TABLE IF EXISTS people; CREATE TABLE people (id int NOT NULL COMMENT 主键,name varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 姓名,sex tinyint NOT NULL COMMENT 性别,age int NOT N…

matlab——制作箱线图

在数据分析中,如果不知道数据分布的情况下很难判断中位数是否有效或者存在离群点。 离群点指偏离大多数点规律的点。 为了更有效对整体数据进行划分,提出四分位点的概念。即选取概念下界、0.25位点、0.75位点、概念上界。 有一种专门表现四分位点的图像叫…

2023年7月2日leetcode每日一题打卡——125.验证回文串

一、题目描述与要求 125. 验证回文串 - 力扣(LeetCode) 题目描述 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给…

Android仿淘宝、京东、拼多多搜索历史

详情见代码 :https://github.com/yixiaolunhui/FSearchHistory

ECShop 权限管理

如何增加一个新的权限 1、配置菜单所对应的权限code admin/includes/inc_priv.php $purview[02_cost_list] cost_list; 2、配置菜单的语言 languages/zh_cn/admincommon.php $_LANG[02_cost_list] 成本明细; 3、配置权限code的语言 languages/zh_cn/admin/priv_action.p…

【C++】类型转换和IO流

C完结 文章目录 前言一、C的四种类型转换二、IO流总结 前言 首先我们看看C语言中的类型转换: 在 C 语言中,如果 赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与 接收返回值类型不一致时,就需…

[Android Studio]1.2计数器

所有要改的代码如下: MainActivity代码: package com.example.code02;import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; imp…

完全背包问题(二维数组 / 一维数组实现)

完全背包 完全背包的一维和二维dp数组 有 N 件物品和容量为 W 的背包,第 i 件物品的重量是 weight[i],价值是 value[i] 每件物品都有无限个,即同一物品能够放入背包多次,求背包所能装入物品的最大价值总和 完全背包和 0-1 背包不…

微服务:Springboot集成Hystrix实现熔断、降级、隔离

文章目录 前言知识积累Springboot集成Hystrix1、maven依赖引入2、application开启feign的hystrix支持(客户端配置限流降级熔断)3、入口类增加EnableFeignClients EnableHystrix 开启feign与hystrix4、feign调用增加降级方法服务端配置限流降级熔断(选择使…

NSS [MoeCTF 2022]ezphp

NSS [MoeCTF 2022]ezphp 先看题目,看到这个就想到了BUU的mark love cat。但是完全不一样,这道题exit()在foreach()之前 法一且唯一: echo回显flag 如果要echo,那么不能exit,那么必须传flag(get或者post&a…

【SLAM学习】FAST-LIO配置

本文主要记录如何配置FAST-LIO Eigen库 Eigen库安装: sudo apt install libeigen3-dev 查看Eigen版本: $ pkg-config --modversion eigen3 PCL库 PCL库安装: sudo apt install libpcl-dev 也可以指定版本安装: sudo apt …