Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Lambda函数即使添加了wait,也不运行其他异步函数_Javascript_Node.js_Asynchronous_Redis_Async Await - Fatal编程技术网

Javascript Lambda函数即使添加了wait,也不运行其他异步函数

Javascript Lambda函数即使添加了wait,也不运行其他异步函数,javascript,node.js,asynchronous,redis,async-await,Javascript,Node.js,Asynchronous,Redis,Async Await,我有一个Lambda函数,它没有运行我正在使用的异步函数wait on。我猜还有其他东西是异步的,我需要等待它,尽管我不确定可以/应该等待什么,因为redis包的文档没有提到我看到的承诺或异步。我试着把await放在clienthmset…前面,但是VS-code说我不能等待。我有什么办法让它正常运行 这是我提出的最小可复制代码,注意本示例中没有包括的只有我的记录器、我的导入和我的客户端设置(有密码和主机名) CloudWatch日志中的日志显示消息日志正在查找中,但结果日志返回时除了日志级别之

我有一个Lambda函数,它没有运行我正在使用的异步函数wait on。我猜还有其他东西是异步的,我需要等待它,尽管我不确定可以/应该等待什么,因为
redis
包的文档没有提到我看到的承诺或异步。我试着把
await
放在
clienthmset…
前面,但是VS-code说我不能等待。我有什么办法让它正常运行

这是我提出的最小可复制代码,注意本示例中没有包括的只有我的记录器、我的导入和我的客户端设置(有密码和主机名)


CloudWatch日志中的日志显示消息日志正在查找中,但结果日志返回时除了日志级别之外什么都没有。

loadRedis
声明为
async
,但您不返回任何内容,因此它并没有真正等待任何内容

也许你只需要做:

const loadRedis = async (message) => {
  return new Promise((resolve, reject) => {
    return 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)
      }
    })
  }
}

感谢您的回复,
redis
软件包不支持承诺,所以我猜这已经过时了。我以为它会通过“决心/拒绝”被呼叫而返回,我想不会吧?不,但你可以自己返回承诺。。。见编辑谢谢我会尝试一下,我以前做过类似的事情,但没有返回。最后有时间测试,效果非常好,非常感谢您的帮助。
const loadRedis = async (message) => {
  return new Promise((resolve, reject) => {
    return 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)
      }
    })
  }
}