有没有办法使用elasticjs取消对Elasticsearch的请求/查询?我正在处理的网络应用程序每5秒执行一次请求/查询,但如果由于某种原因,响应在5秒内没有显示,我想取消请求(因此浏览器不会堆积自查询重复发生以来,一堆不必要的请求。我知道这不会阻止Elasticsearch完成查询,但我想至少在浏览器中取消该请求。
示例:
var request = ejs.Request().doSearch();
var dataFromElasticsearch;
request.then(function (data) {
dataFromElasticsearch = data;
});
setTimeout(function () {
if (!dataFromElasticsearch) {
//do something here to cancel request
}
}, 5000)
答案 0 :(得分:0)
对于elasticsearch.js的每documentation(3.1,在撰写本文时):
...调用API将返回一个具有abort()方法的对象(一个promise或一个普通对象)。调用abort方法会结束HTTP请求,但它不会结束Elasticsearch正在进行的工作。
特别针对您的示例:
setTimeout(function () {
if (!dataFromElasticsearch) {
request.abort();
}
}, 5000)