node.js - 当给定一个空白 index.js 文件时,为什么 ElectronJS 不会简单地退出?
问题描述
我试图了解电子主进程。我对某事感到困惑。
尝试这个:
% touch blank.js
% electron blank.js
你会注意到电子没有退出。由于没有创建“应用程序”,我不清楚为什么该进程会一直存在,以及为什么我需要调用process.exit
fromblank.js
来终止。该文档在描述对process
.
解决方案
假设我有一个典型的电子应用程序:
await app.whenReady();
const win = new BrowserWindow();
await win.loadUrl("https://google.com");
窗口被创建,主方法退出。没有其他东西在等待任何东西。在这种情况下,Electron 不会退出,因为它没有意义,因为我们现在只是在等待用户与窗口进行交互。
应该触发退出的事情是剩余的窗口关闭(window-all-closed
事件)或显式app.quit()
类型的命令。
现在我猜你可能会说这是不同的,因为实际上创建了一个窗口,但是 Electron 怎么知道这会发生呢?必须等待多长时间才能确定不会创建窗口?
建立像“主要方法必须等待窗口创建”这样的规则对我来说似乎过于严格,所以 Electron 只是假设它可能会在以后发生,也可能不会发生,但在它被告知退出之前,它会等待。
最终,Electron 团队的某个人可以给出更准确的答案,但这是我最好的猜测。
推荐阅读
- kubernetes - Rancher无法访问集群
- android - Android Kotlin - viewBinding 在视图上导入未解析的引用
- php - Laravel 5.8:POST 路由似乎不起作用
- bash - 将参数传递给 bash 脚本(curl)
- python - 我怎样才能使这个子字符串查找器更高效、更清洁?
- python - 我正在尝试使用 python 从地图中抓取收费数据(https://www.expresslanes.com/map-your-trip),但我不知道如何使用 XHR 抓取数据
- python - ERR ModuleNotFoundError:没有名为“flask”云代工厂推送的模块
- android - (Jetpackcompose) onCreate 方法运行多次
- javascript - 在 React 问题中将组件放置在右侧和其他项目周围
- algorithm - 不使用访问数组的 DAG 上 DFS 的时间复杂度