this.$store.dispatch('analyzesDetail', id).then(() => {
this.temp = this.$store.state.nlp.analyzesDetail.content;
//...
});
我在analyzesDetail這個action完成以后取獲得state里面的analyzesDetail,為什么還是之前的數(shù)據(jù)?
action
analyzesDetail({commit}, id){
return new Promise((resolve, reject) => {
setTimeout(() => {
request(
{
method: 'get',
url: `/agent/nlp/analyze/${id}`,
},
{type: nlpTYPE.ANALYZES_DETAIL},
{type: nlpTYPE.ANALYZES_DETAIL_ERROR, message: '獲取分析詳細失敗'},
commit);
resolve()
}, 100)
})
},
const mutations = {
[nlpTYPE.SEGMENT] (state, payload) {
state.segment = payload;
},
[nlpTYPE.ANALYZE] (state, payload) {
state.analyze = payload;
},
[nlpTYPE.CURRENT_ANALYZE] (state, payload) {
state.currentAnalyze = payload;
},
[nlpTYPE.ANALYZES] (state, payload) {
state.analyzes = payload;
},
[nlpTYPE.ANALYZES_ID] (state, payload) {
state.analyzesId = payload;
},
[nlpTYPE.ANALYZES_DETAIL] (state, payload) {
state.analyzesDetail = payload;
},
};
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
用watch解決了這個問題,用watch監(jiān)聽analyzesDetail,發(fā)生變化之后再去計算我要的數(shù)據(jù);但是感覺這只是臨時解決了,到底為什么promise不行還是能弄清楚