При использовании узла процесс не завершается после завершения выполнения - PullRequest
0 голосов
/ 27 февраля 2019

работает код, тело которого похоже на приведенный ниже, код выполняется нормально, но соединение не закрывается после его завершения, я смотрел на процесс узла не завершается после firebase один раз но я ищу что-то, что не даст мне ошибки каждый раз, когда функция используется в безсерверной инфраструктуре.

const firebase = require('firebase-admin');

return new Promise((resolve, reject) => {
    var message = {
        notification: {
          title: `**`,
          body: `**`
        },
        condition: `**`
      };
      firebase.messaging().send(message).then((response) => {
        resolve(response);
      })
      .catch((error) => {
          reject(error);
      });
    });

Как я могу заставить ее выйти из этого процесса, не создавая без сервераошибка?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Я провел еще какое-то исследование и нашел способ сделать это, не выходя из функции AWS без сервера, - использовать функцию firebase.messaging().goOffline() вместо функции process.exit()

const firebase = require('firebase-admin');

return new Promise((resolve, reject) => {
    var message = {
        notification: {
          title: `**`,
          body: `**`
        },
        condition: `**`
      };
      firebase.messaging().send(message).then((response) => {
        resolve(response);
        firebase.messaging().goOffline();
      })
      .catch((error) => {
          reject(error);
          firebase.messaging().goOffline();
      });
    });
0 голосов
/ 27 февраля 2019

Ваш вопрос немного расплывчат, поэтому я могу неправильно понять, но я думаю, что вам просто нужно process.exit(), чтобы завершить процесс узла.

const firebase = require('firebase-admin');

return new Promise((resolve, reject) => {
    var message = {
        notification: {
          title: `**`,
          body: `**`
        },
        condition: `**`
      };
      firebase.messaging().send(message).then((response) => {
        resolve(response);
        process.exit(0) // Addition; zero exit code indicates success
      })
      .catch((error) => {
          reject(error);
          process.exit(1) // Addition; non-zero exit code indicates something went wrong
      });
    });
...