从 vuex 操作返回 axios 承诺

Posted

技术标签:

【中文标题】从 vuex 操作返回 axios 承诺【英文标题】:Returning axios promises from vuex action 【发布时间】:2019-07-30 07:02:43 【问题描述】:

我不知道,让 vuex 操作返回 axios 承诺是否是一种不好的方法,如下例所示。我这样做的原因是因为我需要请求中来自 vuex 状态的一些值。谁能告诉我,这是不好做还是完全没问题? :)

/* Vuex action */
fetchSomething( state , id) 
  return getSomething(
    id,
    state.basket.shipping,
    state.basket.billing);
,

/* Method in vue component */
someMethod() 
  this.$store.dispatch('fetchSomething')
    .then(res => console.log(res));

【问题讨论】:

你能澄清一下“我需要一些来自请求中 vuex 状态的值”的意思吗? @LassiUosukainen 我需要一些值保存在状态中作为请求的获取参数 有多种方式可以访问请求前的状态。然而,从 Vuex 操作返回一个承诺与请求之后发生的事情有关。它与以任何方式发送请求无关。 【参考方案1】:

我看不出这样做的意义。 Vuex 操作的重点是执行检索数据的异步工作,然后到mutate Vuex 存储。

商店发生变异后,您可以access it from your Vue component。由于 Vuex 是 Vue 生态系统的一部分,它遵循与 Vue 相同的反应性原则。如果您需要在检索到数据后执行某些操作,您可以在要检索的变量上设置一个观察者,或者更常见的情况是将其用作计算属性。

【讨论】:

以上是关于从 vuex 操作返回 axios 承诺的主要内容,如果未能解决你的问题,请参考以下文章

Vuex Action - 返回 Axios Promise

返回承诺的 Vuex 操作永远不会解析或拒绝

从 vuex 存储操作中的承诺返回错误

从承诺解决方案调用时,Vuex 商店未更新

Vuex:Axios GET 请求在组件内部返回未定义

Vue 从承诺中返回