Nodejs http.get在请求结束时返回body

时间:2016-10-30 07:23:27

标签: node.js promise

我写了这个函数:

   _sendGetRequest : function (query) {
    http.get({
        host: elasticIp,
        port: elasticPort,
        path: "/logstash-2016.09.19/_search?source=" +
        query
    }, function (response) {
        var body = '';
        response.on('data', function (d) {
            body += d;
        });
        response.on('end', function () {
         //return body
        });
    });

}

我希望_sendGetRequest仅在http请求结束时才返回response.body 如果有或没有承诺,我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

它以异步方式运行,您可以使用callbackpromise来完成此操作。

以下是callback

的示例
 _sendGetRequest: function(query,callback) {
     http.get({
       host: elasticIp,
       port: elasticPort,
       path: "/logstash-2016.09.19/_search?source=" +
         query
     }, function(response) {
       var body = '';
       response.on('data', function(d) {
         body += d;
       });
       response.on('end', function() {
         //return body
         callback(null,body);
       });
     });

   }

并称你为这样的功能

_sendGetRequest(query,function(err,body){
    if(!err){
      console.log(body);
    }
   })