Promise.promisify()
can work with such callbacks as well. When multiple values are given, they'll just be passed along in an Array
:
var Promise = require('bluebird');
var request = Promise.promisify(require('request'));
request('http://stackoverflow.com').then(function (result) {
var response = result[0];
var body = result[1];
console.log(response.statusCode);
});
Which can also be .spread()
back to individual arguments as Esailija mentioned in the comments:
// ...
request('http://stackoverflow.com').spread(function (response, body) {
console.log(response.statusCode);
});