使用节点,进程一旦完成执行就不会退出

Using node the process doesn't exit once finished executing

运行 代码的主体类似于下面的代码,代码执行正常,但连接一旦完成就不会关闭,我看过 node process doesn't exit after firebase once 但我我正在寻找每次在无服务器框架中使用该函数时都不会给我错误的东西。

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);
      });
    });

如何在不产生无服务器错误的情况下退出此过程?

你的问题有点含糊,所以我可能会误解,但我认为你只需要 process.exit() 来终止 Node 进程。

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
      });
    });

我做了更多研究,发现在不退出 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();
      });
    });