axios 模拟同步请求

时间:2022-05-02 06:24:29

axios本身没有同步请求,但是我们很多情况下必须得需要同步请求。那么应该怎么做?

 

上网查了一些资料有人说用es6的 async   assert 我不知道有没有效果,因为我的功能中是没啥效果的。

那么怎么办?项目得接着写,说实话,作为一个后端开发,es6是属实不是很了解。但是我记得以前在某篇博客中见到过一个es6的新语法 promise,他好像可以。抱着试一下的心态,果然有效果!!!

使用详情请见 https://www.runoob.com/w3cnote/es6-promise.html

那么我的项目是vue项目,那么应该怎么用?

        listPers: function (parentId) {
                return new Promise((resolve, reject) => {
                    this.axios.get(‘/sysPer/add=pers‘, {
                        params: {
                            parentId: parentId,
                        }
                    }).then((res) => {
                        if (res.data.code === 200) {
                            if (this.sysPer.parentId1 === 0) {
                                this.firstMenu = res.data.datas;
                            } else if (this.sysPer.parentId1 > 0) {
                                this.secondMenu = res.data.datas
                            }
                            return resolve(true);
                        } else {
                            return resolve(false)
                        }
                    })
                })
            },        

那么这样我们可以这样调用该方法

this.listPers(0).then(res => {
        if(res){
           //执行的代码   
        }
});