我正在嘗試驗證用戶是否在我通過 axios 捕獲的串列中,問題是我使用了 FILTER 選項,但它總是回傳未定義或 [],即如果用戶存在于該陣列中。
我想不出還能做什么,因為我通過 console.log() 驗證它是否是我詢問的變數以及它是否帶來資料。
created() {
this.getStagesDefault()
this.getSalesman()
this.getStagesAmountByUser()
},
methods: {
async getSalesman(){
const { data } = await axios.get('salesman')
this.employees = data.data
},
getStagesAmountByUser(){
console.log(this.user['id'])
var objectUser = this.employees.filter(elem => {
return elem.id === this.user['id']
})
console.log(objectUser)
},
安慰

資料

uj5u.com熱心網友回復:
getSalesman 方法是異步的。這意味著“getStagesAmountByUser”將在“getSalesman”完成之前開始執行。
解決問題的2種方法:
- 等待“getSalesman”方法,但您還必須使創建的方法異步。制作代碼如下:
created: async() =>{ this.getStagesDefault() this.getSalesman() this.getStagesAmountByUser() }
- 將 .then 附加到 getSalesman 函式,然后在 .then 中啟動下一個。制作代碼如下:
created(){ this.getStagesDefault() this.getSalesman().then( () => this.getStagesAmountByUser()) }
uj5u.com熱心網友回復:
getSalesman是一種異步方法。在過濾時,被過濾的陣列仍然是空的。
this.getSalesman() // this runs later
this.getStagesAmountByUser() // this runs right away
通過等待異步方法讓方法按順序運行:
await this.getSalesman()
this.getStagesAmountByUser()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/407476.html
標籤:
