VueJS-从操作返回数据

时间:2019-01-07 09:13:54

标签: vue.js vuex

我可以从Vue操作返回数据还是需要更新商店?

我定义了一个动作,但没有返回数据

getData(){
    return { "a" : 1, "b" : 2 }
}

1 个答案:

答案 0 :(得分:1)

您实际上可以从操作返回数据。从文档中:

  

动作通常是异步的,所以我们怎么知道什么时候动作   完成了吗更重要的是,我们如何组合多个动作   一起处理更复杂的异步流?

您应该在resolve()方法中返回承诺和数据:

actions: {
  actionA () {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve({ name: 'John Doe' })
      }, 1000)
    })
  }
}

并以这种方式使用它:

store.dispatch('actionA').then(payload => {
  console.log(payload) /* => { name: 'John Doe' } */
})