Предполагая, что request
функция асинхронная , вы не сможете вернуть результат запроса.
То, что вы можете сделать, это заставить функцию getBody
получить функцию обратного вызова, которая вызывается при получении ответа.
Body.prototype.getBody = function (callback) {
request({
url: this.url
}, function (error, response, body) {
if (error || response.statusCode != 200) {
console.log('Could not fetch the URL', error);
} else {
callback(body); // invoke the callback function, and pass the body
}
});
};
Так что вы бы использовали это так ...
var body_inst = new Body('http://example.com/some/path'); // create a Body object
// invoke the getBody, and pass a callback that will be passed the response
body_inst.getBody(function( body ) {
console.log(body); // received the response body
});