iT邦幫忙

0

vue dispatch 如何 return 變數?

handleMemberName(id) {
  let name = ``
  this.$store.dispatch('abc/aaa', id).then(res => {
    name = res.data.nickname
    console.log(res.data.nickname) // Hi
  })
  console.log(name) // undefined
  return name
},

打了「某API」後有順利得到 nickname
但是當 return 時會是 undefined
dispatch 不能這樣傳值?
該如何順利傳值呢

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
Ares
iT邦研究生 3 級 ‧ 2020-12-30 17:10:35

這不是 dispatch 的問題,而是 Promise 的問題,你在 then 接到之前就 return 了,所以會是 undefined

async handleMemberName(id) {
  const name = await this.$store.dispatch('abc/aaa', id).then(res => {
    return res.data.nickname
  })
  return name
}

我要發表回答

立即登入回答