request/request-promise

Invalid URI should cause the promise to be rejected

josnidhin opened this issue · 2 comments

var rq = require('request-promise');

rq('test').then(function(){
  console.log('success');
})
.catch(function(err){
  console.log('failed')
});

Expects the code to log 'failed' on console but instead throws error

Hi @josnidhin the culprit are these lines. As you see there the behavior is intentional. It is replicating Request's original behavior in case no callback is registered. The reason is that the error you reported in particular is thrown before the .then(...) method is called. So at that point in time the code cannot differentiate between:

rq('test');
rq('test').then(...).catch(...);

By nature we have a situation here that allows no perfect solution in all cases. However, it could be the case that I can find a different solution that provides a better compromise. It will take me some time to work on, though.

I just released version 1.0.0 which fixes this issue.

Thanks for reporting this @josnidhin . Request-Promise embraces promises in a much more cleaner way.