title: Bluebird promisify and callback with no error argument
body: <p>I'm trying to promisify a 3rd party library that doesn't use the <code>callback(err, data)</code> pattern. Instead they always return <code>callback(data)</code> and <code>throw</code> on errors.</p>
  
  <pre><code>Promise.promisifyAll(horse);
  
  var p = Promise.defer();
  horse.drinkAsync()
      .error(function(data)
      {
          p.fulfill(data);
      })
      .catch(function (err)
      {
          console.error('error occured', err);
      });
  
  return p.promise;
  </code></pre>
  
  <p>What is a nice way to wrap such a behavior with promises and still have it look ok and allow to catch the thrown error? The catch clause doesn't trigger and the application crashes.</p>