【发布时间】:2020-11-07 17:49:23
【问题描述】:
我无法让我的 Action 兑现承诺。 我已经阅读了看起来最相关的帖子。
Returning Promises from Vuex actions
我想知道我的操作何时完成,然后我的组件可以开始做其他事情。 问题是,Action 永远不会返回 Promise。
myComponent.vue
methods: {
loadUrls() {
this.$store.dispatch('getUrls').then(result => {
console.log("getUrls result", result)
})
},
vuex.js
actions: {
getUrls() {
console.log("getUrls")
return new Promise((resolve) => {
setTimeout(() => {
console.log("setTimeout in")
resolve("Resolved!")
}, 1000)
})
},
这是我的控制台日志:
我使用“setTimeout”来尽可能简单地解决问题。在现实生活中,我调用 API。
我不需要依赖这个承诺的结果。我知道这件事。我使用 Vuex 作为事实来源,但我需要跟踪事件何时完成。
提前致谢 =)
【问题讨论】:
-
@User28,谢谢。它帮助我确保我的代码是正确的。我已经修改了您的项目以仔细检查我没有遗漏任何基本的 VueJs 概念,并且一切正常。 codesandbox.io/s/boring-nightingale-n24xx 问题出在我的环境中。我需要清理并重新启动一切。
标签: vue.js vue-component vuex