在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue中methods用async寫法報錯但能執(zhí)行

vue中methods用async寫法報錯但能執(zhí)行

頁面中有一個搜索的方法,調(diào)用時會調(diào)用service層的分頁查詢方法,由于這個方法是調(diào)用封裝的axios異步所以用async和await

但頁面初始化和方法觸發(fā)的時候會報錯:Invalid handler for event "click": got undefined

把a(bǔ)sync和await去掉就不會報錯了

可是這個搜索的方法正常執(zhí)行了啊,結(jié)果頁正常顯示,就是會在控制臺出現(xiàn)一堆上面的錯誤,找不到點(diǎn)擊事件

(PS:不知道為啥網(wǎng)站上傳不了圖片了,就只能貼代碼啦)

user.vue

async handleSearch() {
  console.log('搜索啦')
  let res = await this.service.findPage(this.searchInfo)
  console.log(res)
  this.pageList = res.list
  this.total = res.total
}

封裝的axios最終處理如下

fetch.js

return axios(settings)
  .then(response => {
    let returnData = response.data.content || {}
    return returnData
  }).catch(err => {
    loadingInstance.close()
    Message.error('哇,請求出錯啦~~~')
    return Promise.reject(err)
  })
回答
編輯回答
影魅

事件處理函數(shù)不能設(shè)置為async的,不能會出問題,你可以把你現(xiàn)在的事件處理函數(shù)里的代碼封裝成一個函數(shù)。這個函數(shù)可以加async,然后再調(diào)用

2018年7月8日 19:06
編輯回答
蝶戀花

我猜是這里return的這個對象不是Promise對象造成的,但是不是很確定。因為await后面必須是Promise對象才可以的,你看看是不是應(yīng)該把 return returnData 改成 return Promise.resolve(returnData)

2018年2月16日 17:41