title: Promise is not a function error
body: <p>I try to rewrite below code using Promise but got error of readFile is not a function error.</p>
  
  <pre><code>fs.readFile(data.file.path, function(err, data) {
        if (err) throw err; // Fail if the file can't be read.
  
        const s3data = {
          Key: file_name,
          Body: data,
          ContentType: 'image/jpeg'
        }
  
        s3Bucket.putObject(s3data, function(err, resp){
            if(!err) res.json({resp});
        });
      })
  </code></pre>
  
  <p>My attempt </p>
  
  <pre><code>const readFile = () =&gt; {
        return new Promise((resolve, reject) =&gt; {
          fs.readFile(data.file.path, (err, data) =&gt; {
            resolve(data)
          })
        })
      }
  
      readFile.then(data =&gt; {
        const s3data = {
          Key: file_name,
          Body: data,
          ContentType: 'image/jpeg'
        }
  
        s3Bucket.putObject(s3data, function(err, resp){
            if(!err) res.json({resp});
        });
      })
  </code></pre>
  
  <p>What's wrong? Another question I want to ask is should I use bluebird? I'm using node version 6.9, what's bluebird for? I thought es6 has its own Promise already?</p>