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){ //執行的代碼 } });