axios 模拟同步请求
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){ //执行的代码 } });