Выполнение асинхронного кода при возникновении события «exit» - PullRequest
0 голосов
/ 02 апреля 2012

Я хочу выполнить асинхронный обратный вызов при отправке события exit. Например:

process.addListener ("exit", function (){
    asynchronousCode (function (){
        //my callback
    });
});

Я пробовал оба с addListener и on, но код внутри обратного вызова никогда не выполняется, потому что программа генерирует событие exit, выполняет асинхронную функцию и завершается без вызова обратного вызова.

Как я могу заставить программу ждать, пока я не выполню process.emit ("exit")? Или, может быть, код должен быть синхронным ...

1 Ответ

3 голосов
/ 02 апреля 2012

С документация :

Издается, когда процесс собирается завершиться. Это хорошая ловушка для выполнения постоянных проверок состояния модуля (например, для модульных тестов). Цикл основного события больше не будет запускаться после завершения обратного вызова exit, поэтому таймеры могут не планироваться.

process.on('exit', function () {
  process.nextTick(function () {
   console.log('This will not run');
  });
  console.log('About to exit.');
});

Таким образом, вы не можете использовать асинхронную функцию в этом обработчике.

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