首页 > 解决方案 > 计算内部的 Axios 连接

问题描述

我正在尝试在计算中访问我的 mysql 数据库。我需要等待我的orderList变量得到更新。好吧,我有点让事情起作用,但问题是它应该只在我的过滤器变量更改时更新我的​​ orderList 。相反,它一个接一个地更新它。这是代码:

computed: {
    filteredItems: function() {

       if (this.filter === '') {
            return this.orderList
        }

        let myFirstPromise = new Promise((resolve, reject) => {

            axios.get('/api/admin/order/filter/' + this.filter)
                .then(response => {
                    if (response.data.error !== undefined) {
                        this.curView = 'error'
                        this.error = response.data.error
                        return
                    }
                    this.curView = 'pageOrderlist'
                    response.data.data.forEach(e => { e.cur = 'loading' })
                    resolve(response.data.data); // Yay! Everything went well!
                })
        });

        myFirstPromise.then((successMessage) => {
            this.orderList = successMessage
        });

        return this.orderList 
    }

一遍又一遍地调用它 我错过了什么?你们能帮帮我吗?

标签: javascriptvue.js

解决方案


对变量使用watchfilter,如果它为空,则执行axiosfrom 方法。

意思是,它会观察过滤器变量是否为空,如果它发现它为空,它将执行 axios api 请求。

我认为,您不需要承诺,也不要使用计算。


推荐阅读