title: How to promisify a function when the callback takes multiple arguments
body: <p>Is there any way to promisify a function where the callback takes more than two arguments? An example is node's fs.read, where the three arguments of the callback are err, bytes and data. The data argument doesn't get passed to the then function, so this logs undefined:</p>
  
  <pre><code>var fs = require('fs');
  var Promise = require('bluebird');
  var open = Promise.promisify(fs.open);
  var read = Promise.promisify(fs.read);
  
  open('test.txt', 'r')
    .then(function(fd) {
      var buffer = new Buffer(1024);
      read(fd, buffer, 0, buffer.length, null).then(function(bytes, data) {
        console.log(data);
      });
    });
  </code></pre>