Предотвратить отключение электронного приложения до завершения очистки - PullRequest
1 голос
/ 22 января 2020

Я пытаюсь, чтобы мое электронное приложение выполняло кучу очистки, когда приложение закрывалось (завершение нескольких процессов, удаление некоторых временных файлов и т. Д. c). Я запускаю функцию cleanUp с событием before-quit. Если мой компьютер работает быстро, эти операции очистки завершаются до завершения работы приложения, но если компьютер работает медленно, функция cleanUp иногда выполняется только частично.

Есть ли способ предотвратить полное завершение работы приложения до того, как моя функция cleanUp будет полностью выполнена?

app.on('before-quit', async () => {
  try {
    await cleanUp();
  } catch (err) {
    console.error(err);
  }
});

1 Ответ

1 голос
/ 23 января 2020

Как вы можете прочитать в before-quit документах , вы можете использовать event.preventDefault() в обработчике событий before-quit, чтобы предотвратить завершение приложения.

Ваш код очистки может затем бегите беспрепятственно. В конце очистки закройте приложение программным способом.

Чтобы убедиться, что before-quit не будет блокировать завершение приложения в это время, вы, вероятно, захотите отслеживать текущее состояние приложения. Возможно, вы захотите разрешить завершать приложение внутри before-quit, если завершен код очистки. Это означает: выполнять event.preventDefault() только в том случае, если очистка еще не завершена.

Вероятно, целесообразно информировать пользователя о состоянии приложения: отобразить «завершение работы» или что-то подобное, чтобы оно Понятно, что приложение больше не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...