【发布时间】:2018-03-13 17:42:28
【问题描述】:
我使用await 作为我的搜索的一部分,但作为它的+30000 项,我必须使用scroll。
问题是搜索的初始部分在scroll 之前完成,所以await 触发并且功能继续。我应该怎么做才能阻止这种情况?
var allTitles = [];
try {
await client.search({
index: 'myindex',
scroll: '30s',
source: ['title'],
q: 'title:test'
}, function getMoreUntilDone(error, response) {
response.hits.hits.forEach(function (hit) {
allTitles.push(hit._source.title);
});
if (response.hits.total > allTitles.length) {
client.scroll({
scrollId: response._scroll_id,
scroll: '30s'
}, getMoreUntilDone);
} else {
console.log('every "test" title', allTitles);
}
});
} catch (err) {
console.log(err)
}
【问题讨论】: