0
私はブラウザからelasticsearch.jsで遊んでいます。私はelasticsearchにpingを行い、リクエストが完了するのを待ち、接続の結果を返します。しかし、今は非同期的に起こっており、接続が正常であってもundefined
を返します。Elasticsearch.js - pingの完了を待つ、非同期の呼び出し
var connectionOK = false;
function createElasticsearchClient(hostAddress) {
var client = new $.es.Client({
hosts: hostAddress
});
return client;
}
function checkElasticsearchConnection(client) {
$.when(pingElasticsearch(client)).done(function() {
return connectionOK;
});
}
function pingElasticsearch(client) {
console.log("ELASTICSEARCH: Trying to ping es");
client.ping({
requestTimeout: 30000,
// undocumented params are appended to the query string
hello: "elasticsearch"
}, function (error) {
if (error) {
console.error('ELASTICSEARCH: Cluster is down!');
connectionOK = false;
console.log("INSIDE: " + connectionOK);
} else {
console.log('ELASTICSEARCH: OK');
connectionOK = true;
console.log("INSIDE: " + connectionOK);
}
});
}
とどのようにそれが使用されます:
var esClient = createElasticsearchClient("exampleserver.com:9200");
var esCanConnect = (checkElasticsearchConnection(esClient));
を実行するには、それが動作する、ありがとうございます。 – jpiechowka
ちょっと@jpiechowka私の答えがあなたを助けたら、答えを受け入れることができますか? –