vue3 组合 api 获取数据,在 useFetchListEffect 方法中打印出来 result 的结果,在另一个函数中调用完 getDeptList 还是空数组,这是什么原因?

使用vue3 的组合api获取数据

const useFetchListEffect = (comId, deptId) => {
  let deptData = ref([])
  const getDeptList = async(comId) => {
    const result = await fetchDept({ com_id: comId })
    deptData.value = result.items
    console.log('result',result.items)
  }
  return { deptData, getDeptList }
}
listQuery.comId = value
      let { deptData, getDeptList } = useFetchListEffect(listQuery.comId)
      getDeptList()
      console.log('deptData', deptData.value)
      const deptList = []
      deptData.value.forEach(item => {
        deptList.push({ text: item.name, value: item.id })
      })

我在useFetchListEffect方法中打印出来result的结果,但是在另一个函数中调用的时候,调用完getDeptList还是空数组,这是什么原因

找到问题了,我用了异步,倒是下面函数在调用的时候异步还未完成,应该在getDeptList后面使用.then

阅读 1.4k
1 个回答

getDeptList是一个async,你得await getDeptList()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题