【发布时间】:2019-08-31 15:29:08
【问题描述】:
我在我的 Node 服务器中向 Elasticsearch 发出了一个请求。这是完美的工作,除了我总是得到一个返回的承诺而不是结果。
当我控制台记录结果时,它们看起来很完美,但当我返回它们时,我要么一无所获,要么得到承诺。
谁能告诉我从 Elasticsearch 检索和处理数据的正确方法?
我正在使用带有 Node 服务器和官方 Elasticsearch 包的 VueJS。
function getNewTest(client)
{
client.search({
index: 'myIndex',
}).then(function(resp) {
return resp.hits.hits;
}, function(err) {
console.trace(err.message);
});
}
let tests = getNewTest(client);
console.log(tests);
# Output: Promise { <pending> }
编辑: 正如建议的那样,我尝试了两种代码,都没有工作。我更改了自己的代码,现在它返回一个“未定义”给我。
getNewTest(client).then(function (response) {
console.log(response);
});
将返回“未定义”给我。我将我的功能更改为:
async function getNewTest(client)
{
await client.search({
index: 'myIndex',
}).then(function(resp) {
console.log(resp.hits.hits, 'returned');
return resp.hits.hits;
}, function(err) {
console.trace(err.message);
});
}
什么时候做
let test = getNewTest(client);
它给我一个承诺。
【问题讨论】:
标签: node.js vue.js elasticsearch