首页 > 解决方案 > 当给定一个空白 index.js 文件时,为什么 ElectronJS 不会简单地退出?

问题描述

我试图了解电子主进程。我对某事感到困惑。

尝试这个:

% touch blank.js
% electron blank.js

你会注意到电子没有退出。由于没有创建“应用程序”,我不清楚为什么该进程会一直存在,以及为什么我需要调用process.exitfromblank.js来终止。该文档描述process.

标签: node.jselectron

解决方案


假设我有一个典型的电子应用程序:

await app.whenReady();
const win = new BrowserWindow();
await win.loadUrl("https://google.com");

窗口被创建,主方法退出。没有其他东西在等待任何东西。在这种情况下,Electron 不会退出,因为它没有意义,因为我们现在只是在等待用户与窗口进行交互。

应该触发退出的事情是剩余的窗口关闭(window-all-closed事件)或显式app.quit()类型的命令。

现在我猜你可能会说这是不同的,因为实际上创建了一个窗口,但是 Electron 怎么知道这会发生呢?必须等待多长时间才能确定不会创建窗口?

建立像“主要方法必须等待窗口创建”这样的规则对我来说似乎过于严格,所以 Electron 只是假设它可能会在以后发生,也可能不会发生,但在它被告知退出之前,它会等待。

最终,Electron 团队的某个人可以给出更准确的答案,但这是我最好的猜测。


推荐阅读