我有一个lambda函数,它没有运行我正在使用的异步函数wait on。我猜其他的东西是异步的,我需要等待它,虽然我不确定什么可以/应该等待'作为文档的 redis
我看到的包没有提到承诺或异步。我试着把 await
在门前 clienthmset...
但是vs代码说我等不及了。我有什么办法让它正常运行?
这里是我提出的最小可复制代码,注意这个例子中没有包括的只有我的日志、我的导入和我的客户机设置(有密码和主机名)
const loadRedis = async (message) => {
client.hmset(`${message.region}:${message._id}`, message, (err, res) => {
if(err) {
logger.error(`Error: ${JSON.stringify(err)}`)
reject(err)
}
if(res) {
logger.info(`Response: ${JSON.stringify(res)}`)
resolve(res)
}
})
}
module.exports.loader = async (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
let input = JSON.parse(event.Records[0].body);
let message = input.Message
const result = await loadRedis(message)
logger.info(message)
logger.info(result)
let output = result
callback(null, output);
};
cloudwatch日志中的日志显示消息日志即将被找到,但结果日志返回时除了日志级别之外什么都没有。
1条答案
按热度按时间nxowjjhe1#
loadRedis
已声明async
,但你什么都不退,所以它不是在等什么。。也许你只需要做: