javascript - Vuejs mixin 中的异步方法

标签 javascript vue.js vuejs2 vuex

我正在尝试在多个 vuejs 组件中重用一个方法。我正在使用 mixin 来执行此操作,但异步方法不起作用

我在 mixin 中有一个异步方法,它等待 axios 调用 GET-AllDrafts 完成,然后运行一个突变,将草稿状态值更新为 axios 调用返回的数据。

async orgUpdateMixin() {
      await this.$store.dispatch('GET_AllDrafts')
                       .then(data => {                                       
                           this.$store.commit('draftUpdate', data);    //mutation                                              
                     })
}

我在组件的 mounted() 方法中运行此方法。

mounted(){
   this.orgUpdateMixin();
   console.log(this.data);
}

但由于某种原因 this.data 返回 [] 空数组。有没有办法先等待 mixin 完成再继续。

最佳答案

正如评论所述,请执行以下操作:

async mounted() {
  await this.orgUpdateMixin();
  console.log(this.data);
}

关于javascript - Vuejs mixin 中的异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828313/

相关文章:

javascript - 删除插件editor.md的行号

javascript - 如何在 JavaScript 中使用 strtotime 函数

javascript - 如何在模板中的导入函数中使用?

vue.js - subview 组件将 prop 传递给 Vue 中的父布局

javascript - 动态创建的文本框中值的总和

javascript - 如何获得符合框选择的值vscode

vue.js - v-for : Array element and destructuring of properties

html - 如何删除 span 标签之间的空格,同时在每个 span 标签中保留空格?

javascript - VueJS - 事件发出 - 在其他计算之前显示 HTML

html - Vue.js:无法使用 CSS 媒体查询隐藏带有侧边栏的 div