title: node-redis promisification using bluebird
body: <p>I'm trying to use promises with node-redis package, but I can't use on.connect() method.</p>
  
  <pre><code>var redis = require("redis");
  var client = redis.createClient();
  
  bluebird.promisifyAll(redis.RedisClient.prototype);
  bluebird.promisifyAll(redis.Multi.prototype);
  
  // callback version
  app.get('/redis', function(req, res) {
    client.set("foo_rand000000000000", "some fantastic value", function(err, reply) {
      if (err) {
        console.log(err);
      } else {
        console.log(reply);
      }
      res.end();
    });
  });
  
  // promisified version
  app.get('/redis', function(req, res) {
    return client.setAsync("foo_rand000000000000", "some fantastic value").then(function(return) {
      console.log(return); // returns OK
      client.quit();
    });
  });
  </code></pre>
  
  <p>But I am stuck with the one below, how can I promisify it?</p>
  
  <pre><code>// example
  client.on("connect", function () {
      client.set("foo_rand000000000000", "some fantastic value", redis.print);
      client.get("foo_rand000000000000", redis.print);
  });
  </code></pre>
  
  <p>I tried the one below but it doesn't work, I can't see the response on the command line:</p>
  
  <pre><code>app.get('/redis', function(req, res) {
    return client.onAsync("connect").then(function(res) {
      console.log(res);
      res.end();
    });
  });
  </code></pre>