我正在使用云函数构建一个express服务器,但是我遇到了一个res.send()
的问题。在一个普通的express服务器上,我可以在res.send()
之后执行一些代码,但是在我的express服务器上,使用Firebase cloudFunctions,res.send()
关闭了我的连接,之后我就不能执行任何代码。
下面是我需要做的:在我的服务器中,我有一个从Slack api对话框接收一些数据的endpoint,然后Slack api正在等待空响应res.send()
,因此我需要发送它。但我还需要将这些数据保存在我的DB中,并在slack中向我的用户发送一条消息“您的帖子已保存!”所以我的endpoint的作用是:
async function myEndpoint(req, res) {
await savePayload(req.payload);
await sendUserMessage(req.payload);
res.send('');
}
但有时res.send()
需要很长时间才能开始运行,并且在slack上会出现错误,因此我希望执行如下操作:
async function myEndpoint(req, res) {
res.send('');
await savePayload(req.payload);
await sendUserMessage(req.payload);
}
但是正如我所说的,在res.send('')
之后,我的连接将关闭,接下来的行将不运行。你知道我该怎么解决这个问题吗?
一旦响应完成,HTTP函数就会立即终止执行--这是云函数的基本架构,因此无法绕过它。您将需要: