使用elastic.js中止弹性搜索请求

时间:2014-09-16 14:13:52

标签: javascript elasticsearch elasticjs

有没有办法使用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)

1 个答案:

答案 0 :(得分:0)

对于elasticsearch.js的每documentation(3.1,在撰写本文时):

  

...调用API将返回一个具有abort()方法的对象(一个promise或一个普通对象)。调用abort方法会结束HTTP请求,但它不会结束Elasticsearch正在进行的工作。

特别针对您的示例:

setTimeout(function () {
    if (!dataFromElasticsearch) {
        request.abort();
    }
}, 5000)