【发布时间】:2019-12-23 06:46:25
【问题描述】:
var db = admin.firestore();
exports.handler = async (event) => {
let res = await db.collection(`apps/${event.app_id}/whitelist`).doc(event.ip).set({
ip: event.ip
}).then(() => {
return {
statusCode: 200,
body: {
message: 'success'
}
};
}).catch(() => {
return {
statusCode: 400,
body: {
message: 'failed'
}
};
});
return res;
};
此代码将导致 Lambda 超时,console.log(exports.handler(event)) 将打印 Promise{<pending>}。
我的问题是
1. Lambda 对这个异步函数有什么期望;它应该返回什么?
2. Promise{<pending>} 表示未解析的promise,但在代码中,res 最终将是一个值/对象,那么为什么它仍然说未解析。
3. 我们可以查找哪些不错的参考资料?
谢谢。
【问题讨论】:
标签: node.js async-await aws-lambda google-cloud-firestore