AWS Lambda JavaScript SDK异步处理程序

时间:2018-06-26 07:30:50

标签: javascript node.js aws-lambda

考虑此Node 8.10代码:

exports.handler = async (event, context, callback) => {
    setTimeout(() => callback(null, "resolved"), 100)
};

当我运行它时,响应为null。当我从处理程序中删除async关键字时,响应是预期的"resolved"

有人可以解释这种行为吗?在Lambda容器中如何执行async函数,与“普通”函数有什么区别?

1 个答案:

答案 0 :(得分:3)

async函数的处理与正常函数不同。

Lambda容器使用普通函数使用回调函数来获取结果,甚至可以异步调用该结果。

但是当处理程序定义为async时,将使用返回值:var res = await handler(...),并且忽略回调。