Вы действительно можете вернуть данные из действия. Из документации:
Действия часто являются асинхронными, так как мы узнаем, когда действие
сделанный? И что более важно, как мы можем составить несколько действий
вместе для обработки более сложных асинхронных потоков?
Вы должны вернуть обещание и данные в методе 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' } */
})