【问题标题】:Vuex Action never resolveVuex Action 永远不会解决
【发布时间】: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 作为事实来源,但我需要跟踪事件何时完成。

提前致谢 =)

【问题讨论】:

标签: vue.js vue-component vuex


【解决方案1】:

已解决!在我删除我的 dist 文件夹,关闭 VSCode 并使用新的构建本地主机 URL 打开一个新的 Chrome 实例后它工作。

感谢@User-28。我看到了他的共享代码,并意识到我的代码没有任何问题。然后我开始观察我的环境。

我的第一个代码在操作中没有 Promise Resolve。我编译并正在测试它。

然后我找到了Returning Promises from Vuex actions,它解释了如何在其中使用 Promise。我编译并尝试测试它。永远不会成功。不知何故,没有 Promise 的代码总是在那里。清理 Dist 文件夹后,关闭 VS 代码并使用新的 Chrome 实例,新代码就位并工作。 我仍然不知道实际的问题,但至少它现在可以继续前进。

【讨论】:

    猜你喜欢
    • 2021-12-25
    • 2019-11-29
    • 2021-11-04
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    相关资源
    最近更新 更多