我写了这个函数:
_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 如果有或没有承诺,我怎么能这样做?
答案 0 :(得分:0)
它以异步方式运行,您可以使用callback
或promise
来完成此操作。
以下是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);
}
})