skip to Main Content
async function getRedisKeyAsync(key){
    var value = await client.get(key);
    console.log('got value ' + value + ' for key ' + key + ' in redis');
    return value;
}

async function getRedisKeyPromise(key){
    client.get(key).then(
        (value) => {
            console.log('got value ' + value + ' for key ' + key + ' in redis');
            return value;
        }
    );
}

In both cases, value for key is fetched from redis correctly. But a caller of these functions get the value back only in the first case.

var value1 = await myredis.getRedisKeyAsync(req.params.key); // works

var value2 = await myredis.getRedisKeyPromise(req.params.key); // value2 is undefined

How do I rewrite getRedisKeyPromise so that it behaves the same as getRedisKeyAsync ?

2

Answers


  1. Try by adding return to second function

    async function getRedisKeyPromise(key) {
      return client.get(key).then(
        (value) => {
          console.log('got value ' + value + ' for key ' + key + ' in redis');
          return value;
        }
      );
    }
    
    Login or Signup to reply.
  2. You can just simplify it:

    function getRedisKeyPromise(key){
        return client.get(key)
    }
    

    It does the equivalent task like async or just .then()

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search