Node.js 使用Redis async await函数存储令牌不起作用。异步等待在Redis上工作吗?

Node.js 使用Redis async await函数存储令牌不起作用。异步等待在Redis上工作吗?,node.js,redis,Node.js,Redis,我正在尝试用Redis存储一个令牌,并在它存在时检索它。如果没有,请调用服务器以获取令牌: async function sendData (req, data, cb) { let synchronyToken = await hb.redis.client.getAsync('synchronyToken-' + config.getEnv()); if(synchronyToken === null) { await request({ 'method': a

我正在尝试用Redis存储一个令牌,并在它存在时检索它。如果没有,请调用服务器以获取令牌:

async function sendData (req, data, cb) {

let synchronyToken = await hb.redis.client.getAsync('synchronyToken-' + config.getEnv());

 if(synchronyToken === null) {
    await request({
        'method': authOptions.method,
        'url': authOptions.url,
        'proxy': authOptions.proxy,
        'body': authOptions.body,
        'headers': authOptions.headers
      }, (error, response, body) => {
        console.log(response);
        synchronyToken = response.access_token;
        hb.redis.client.set('synchronyToken-' + config.getEnv(), synchronyToken, {ttl: 3600});
      })
    }
}
等待在Redis上不起作用吗

我在以下方面遇到错误:

let synchronyToken = await hb.redis.client.getAsync('synchronyToken-' + config.getEnv());
我担心如果我只使用

let synchronyToken = hb.redis.client.getAsync('synchronyToken-' + config.getEnv());

我的代码将继续运行,并在不等待Redis回复的情况下检查synchony令牌。

假设您使用的是用户节点\u Redis库,则没有client.getAsync这样的函数,除非您使用promisify这样定义它:

const {promisify} = require('util');
const getAsync = promisify(client.get).bind(client);
您还可以检查支持异步/等待开箱即用的ioredis库:


您在这方面遇到了什么错误?我在redis中使用了async/await,它工作得很好。你不需要在redis中使用promisify吗?