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

Abort elasticsearch request using elastic.js

本文关键字:搜索 请求 elastic js 使用      更新时间:2023-09-26

有没有办法使用elasticjs取消对Elasticsearch的请求/查询?我正在开发的web应用程序每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)

根据elasticsearch.js(3.1,在撰写本文时)的文档:

调用API将返回一个具有abort()方法的对象(promise或纯对象)。调用中止方法会结束HTTP请求,但不会结束Elasticsearch正在做的工作。

特别针对您的示例:

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