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');
});
生成以下应用程序菜单:
点击任何菜单项都会产生相同的结果:应用程序退出然后重新启动。
app.relaunch
后应该执行app.quit
或app.exit
”。 - Rafael Tavares