title: Error turning Amazon S3 function into promises using when/node
body: <p>I'm trying to lift an AWS S3 async function, and running into a weird error. Given the following code,</p>
  
  <pre><code>var s3 = new AWS.S3();
  var when = require('when');
  var nodefn = require('when/node');
  
  var getObjectP = nodefn.lift(s3.getObject);
  
  getObjectP({
      Bucket: 'bucket_name',
      Key: 'key_name'
  })
  .then(function(data) {
      ...
  }, function(err) {
      ...
  });
  </code></pre>
  
  <p>I get this error,</p>
  
  <pre><code>Object #&lt;Object&gt; has no method 'makeRequest'
  </code></pre>
  
  <p>Here's what the <code>getObject</code> looks like normally (it works fine when I use callbacks instead of promises):</p>
  
  <pre><code>s3.getObject({ ... }, function(err, data) {
      ...
  });
  </code></pre>
  
  <p>Am I misusing <code>nodefn.lift</code>? It seems pretty straight-forward. Here's the docs for anyone interested. <a href="https://github.com/cujojs/when/blob/master/docs/api.md#nodelift" rel="noreferrer">https://github.com/cujojs/when/blob/master/docs/api.md#nodelift</a></p>