【发布时间】:2018-09-13 02:17:55
【问题描述】:
想象一下,我有一个 Vue 应用程序,其所需部分的结构如下:
我有三个部分。地点:
1. Vue部分:
<template>
<div>
<div v-if="displayTable" class="dataTable">
...
</div>
</div>
</template>
<script>
export default {
...
methods: {
getDataset: function() {
this.$store.dispatch('getDataFromDB')
.then(() => {
if (this.$store.state.dataSet.length > 0) {
this.displayTable = true
}
})
}
}
...
}
</script>
2。 Vuex部分
const actions = {
...
getDataFromDB ({commit}, payload) {
DataSources.apiGetData(payload.querystring)
.then(dataset => commit(GET_DATA, {dataset}))
}
...
}
3. axios 部分
export const DataSources = {
...
return apiGetData (queryString) {
return axios.get('urlString').then(response => return response.data)
}
...
}
目标:
我需要在商店的 actions 中检索和保存数据库中的数据,并且仅在显示 div.dataTable 之后。这就是 Promise 的功能。
问题:
在我的情况下,then() 的部分首先处理。 我该怎么做才能解决它?
【问题讨论】:
-
这可能是因为您的
getDataFromDB操作没有返回 Promise。你能显示那个代码吗? -
@thanksd 代码已显示。仍然需要帮助。
标签: javascript vue.js promise vuex