考虑此Node 8.10代码:
exports.handler = async (event, context, callback) => {
setTimeout(() => callback(null, "resolved"), 100)
};
当我运行它时,响应为null
。当我从处理程序中删除async
关键字时,响应是预期的"resolved"
。
有人可以解释这种行为吗?在Lambda容器中如何执行async
函数,与“普通”函数有什么区别?
答案 0 :(得分:3)
async
函数的处理与正常函数不同。
Lambda容器使用普通函数使用回调函数来获取结果,甚至可以异步调用该结果。
但是当处理程序定义为async
时,将使用返回值:var res = await handler(...)
,并且忽略回调。