首页 > 解决方案 > 承诺解决不退出

问题描述

我不确定为什么我的函数在运行后没有退出。解决承诺后,代码不会退出执行。

我正在使用 Firebase Admin SDK 发送包含以下内容的消息:

var message = {
    data: {
        score: '850',
        time: '2:45'
    },
    topic: topic
};

admin.messaging().sendAll([message])
.then((response) => {
    // Response is a message ID string.
    console.log('Successfully sent message:', response);
})
.catch((error) => {
    console.log('Error sending message:', error);
});

打印到控制台“成功发送消息:”后,代码控制台仍在运行且不返回。我究竟做错了什么?

作为参考,这里是 firebase 消息发送的签名:

send(message: admin.messaging.Message, dryRun?: boolean): Promise<string>;

标签: javascriptnode.jsfirebasefirebase-cloud-messagingfirebase-admin

解决方案


Firebase Admin SDK 中可能存在阻止进程退出的内容。完成后,您可以通过简单地添加process.exit(0)then回调的末尾来强制进程退出,如果那是您希望它终止的时候。

如果您认为这种行为是一个错误,您可以在Firebase Admin SDK GitHub 上提交它。


推荐阅读