他们在Electron文档page中建议重新启动应用程序,应在调用app.quit之后执行app.exitapp.relaunch:



但是,经过实验后,我发现顺序似乎并不重要。 (请参见下面的示例。)

我知道app.quitapp.exit不太一样。前者可以被中断并触发一些事件,而后者将强制应用程序退出而不触发任何事件或允许应用程序取消操作。

问题:假设强制退出应用程序总是可以的,并且在退出应用程序之前我们没有任何任务可以执行,是否存在:

  • 喜欢app.quitapp.exit的原因吗?
  • 为什么必须在app.quit之后运行app.exitapp.relaunch


  • 这是一个非常简单的 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应用程序的正确方法是什么?-LMLPHP

    单击任何菜单项都会产生相同的结果:应用程序退出然后重新启动。

    最佳答案

    重新启动 Electron 应用程序的正确方法是:

    app.relaunch()
    app.exit()
    

    参见official documentation

    关于javascript - 重新启动Electron应用程序的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55982480/

    10-11 22:28
    查看更多