下面是一段时间以来一直让我疯狂的事情。我正在开发一个涉及使用Javascript访问ElasticSearch的项目。作为测试的一部分,我想创建一个索引。这里是一个非常简单的片断,在我脑海里,应该这样做,并打印从ElasticSearch服务器返回的消息:使用ElasticSearch javascript客户端创建索引,承诺不会返回
var es = require('elasticsearch');
var es_client = new es.Client({host: "localhost:9200"});
var breaker = Math.floor((Math.random() * 100) + 1);
var create_promise = es_client.indices.create({index: "test-index-" + breaker});
create_promise.then(function(x) {
console.log(x);
}, function(err) { console.log(err);});
当我去到一个目录下会出现什么情况,运行npm install elasticsearch
,然后运行该代码与NodeJS一样,是请求已经完成,但由于某种原因,承诺不会返回。我希望这段代码能够运行到最后,并在ES服务器的响应回来后完成。相反,这个过程只是挂起。任何想法为什么?
我知道索引可以通过添加一个文档来创建,但是这个奇怪的行为只是给我造成了困扰,而我无法弄清楚它背后的原因或意义。
可能的重复[如何将现有的回调API转换为承诺](http://stackoverflow.com/questions/22519784/how-do-i-convert-an-existing-callback-api-to-promises ) –
看完源代码后,我几乎可以肯定这是一个错误 - 请在github上的跟踪器中打开一个问题 –