【发布时间】:2021-09-16 22:09:27
【问题描述】:
在此 Electron 文档 page 中,他们建议重新启动应用程序,应该在调用 app.relaunch 之后执行 app.quit 或 app.exit :
注意此方法执行时不会退出应用,需要在调用app.relaunch后调用app.quit或app.exit才能让应用重启。
但是经过实验,我发现顺序似乎并不重要。 (请参阅下面的示例。)
我知道app.quit 和app.exit 不太一样。前者可以被中断并触发一些事件,而后者会强制应用退出而不触发任何事件或允许应用取消操作。
问题:假设强制应用退出总是可以的,并且在应用退出之前我们没有任何任务要执行,是否存在:
- 选择
app.quit或app.exit的理由? - 为什么必须在
app.relaunch之后运行app.quit或app.exit的原因?
这是一个非常简单的 Electron 应用:
package.json
{
"name": "burrito",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"devDependencies": {
"electron": "^4"
}
}
main.js
const {app, BrowserWindow, Menu} = require('electron');
let mainWindow;
app.on('ready', () => {
Menu.setApplicationMenu(
Menu.buildFromTemplate([
{role: 'appMenu', submenu: [
{label: 'relaunch(); exit()', click() {
app.relaunch();
app.exit();
}},
{label: 'relaunch(); quit()', click() {
app.relaunch();
app.quit();
}},
{type: 'separator'},
{label: 'exit(); relaunch()', click() {
app.exit();
app.relaunch();
}},
{label: 'quit(); relaunch()', click() {
app.quit();
app.relaunch();
}}
]}
])
);
mainWindow = new BrowserWindow({width: 640, height: 480});
mainWindow.loadFile('index.html');
});
生成以下应用程序菜单:
单击任何菜单项都会产生相同的结果:应用退出然后重新启动。
【问题讨论】:
标签: javascript electron