You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.0 KiB
TypeScript

import Vue from 'vue';
import { Store } from 'vuex';
import VueWait from 'vue-wait';
Vue.use(VueWait);
const wait = new VueWait({
useVuex: true,
});
// 由于微信小程序的运行机制问题需声明如下一行H5和APP非必填
Vue.prototype.$wait = wait;
export const createVueWait = () => (store: Store<any>): void => {
// 当 store 初始化后调用
store.subscribeAction({
// 发起一个action 之前会走这里
before: (action) => {
// console.log(`before action ${action.type}`, action);
if (!action.type.startsWith('wait/')) {
wait.start(action.type);
}
},
// 发起一个action 之后会走这里
after: (action) => {
// console.log(`after action ${action.type}`, action);
if (!action.type.startsWith('wait/')) {
wait.end(action.type);
}
},
error: (action) => {
// console.log(`error action ${action.type}`, action);
if (!action.type.startsWith('wait/')) {
wait.end(action.type);
}
},
});
};
export default wait;