防反跳时间低于发布请求响应时间

问题描述

我已经为搜索框实现了反跳功能。但是在某些情况下,对发布请求的响应时间会长于反跳功能的等待时间,因此我得到了显示错误的响应。有比增加防抖等待时间更好的解决方案吗?

编辑:

这是我的尝试,使用异步功能

Vue.component('autocomplete',{
template: '#autocomplete',data: function() {
    return {
        searching_array: [],timeout: null,}
},computed: {
    searching: function() {
        return this.searching_array.length > 0;
    }
},methods: {    
    scheduleSearch: function() {
        if(this.timeout) {
            clearTimeout(this.timeout);
        }
        this.timeout = setTimeout(this.search,500);
    },search: async function() {
        /*...*/

        this.searching_array.push(data.search);  
        await this.postRequest(/*...*/);
        this.searching_array.shift();
    }
}

在模板中,我具有带有v-on:keyup="scheduleSearch"操作的输入字段。没有包含某些代码部分,因为这些部分与我的问题无关。在这些部分中,我添加了用于搜索服务器上数据库内容。此外,this.postRequest(/*...*/)作为promise函数从服务器返回响应。 当计算出的searchingtrue时,我显示的是字符串Searching...而不是结果。

我没有使用axios,而是使用this.$http. ...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)