【无标题】页面切换继续保留状态请求

// 在 store.js 文件中
import Vue from ‘vue’;
import Vuex from ‘vuex’;
import axios from ‘axios’;

Vue.use(Vuex);

const store = new Vuex.Store({
state: {
taskId: null,
executionStatus: ‘执行中’,
intervalId: null,
},
mutations: {
setTaskId(state, taskId) {
state.taskId = taskId;
},
updateExecutionStatus(state, status) {
state.executionStatus = status;
},
setIntervalId(state, intervalId) {
state.intervalId = intervalId;
},
clearIntervalId(state) {
clearInterval(state.intervalId);
state.intervalId = null;
},
},
actions: {
fetchInitialData({ commit }) {
axios.get(‘第一个接口A的URL’)
.then(response => {
const id = response.data.id;
commit(‘setTaskId’, id);
commit(‘updateExecutionStatus’, ‘执行中’);
this.dispatch(‘fetchExecutionStatus’, id);
})
.catch(error => {
console.error(error);
});
},
fetchExecutionStatus({ commit }, taskId) {
const intervalId = setInterval(() => {
axios.get(第二个接口B的URL?id=${taskId})
.then(response => {
const status = response.data.status;
if (status === ‘执行完成’) {
commit(‘updateExecutionStatus’, status);
commit(‘clearIntervalId’);
// 执行完成后的操作
}
})
.catch(error => {
console.error(error);
});
}, 3000);
commit(‘setIntervalId’, intervalId);
},
},
});

export default store;

执行状态: {{ executionStatus }}


这个示例中,我们将任务的状态(任务ID、执行状态、定时器ID等)存储在Vuex的状态中。通过mutations来修改状态,通过actions来分发异步操作。当页面切换回来时,Vuex store中的状态会被保留,因此你可以继续从中获取并处理任务状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值