是否可能有多个Lambda回调

时间:2019-05-31 12:44:45

标签: javascript node.js aws-lambda serverless

我有一个不带lambda / server的函数,它将执行一些API调用,这将需要一些时间。我想在每个任务完成时(进度条样式)更新前端的用户,但是我知道向回发送信息的唯一方法是回调函数,该函数在整个过程结束时只能使用一次

是否可以发送多个回调?

谢谢。

1 个答案:

答案 0 :(得分:3)

否,您只能调用一次AWS Lambda回调。 因此,您只能收到一次结果:完成或失败。

这里有相关的documentation说:

  

调用回调时,AWS Lambda继续执行Lambda函数   调用直到事件循环为空。

这意味着在调用回调之后-您将收到响应。但是,功能可以稍后完成工作,但是您将无法再从功能中获取任何新数据。

此外,记住非常重要的一点是,当您调用Lambda时,您实际上是在调用 stateless 容器。因此,无法保存状态然后在下一次调用时读取它。您永远不应保存并依赖保存在该容器内部的任何数据。

可能的解决方案是将您的工作分成几个块,然后分别发送每个块进行处理。然后,在收到有关成功处理块的响应后,您可以更新进度条。