Files
vue3-study/src/stores/userInfo.ts
T
2023-12-03 21:47:40 +08:00

51 lines
1.1 KiB
TypeScript

import { defineStore } from "pinia";
import { ref, computed } from "vue";
interface user {
userId: number | string,
userName: string
}
const getUserInfo = () => {
return new Promise(resolve => {
setTimeout(() => {
const userinfo : user = {
userId: 123456789,
userName: "李白"
};
resolve({
errcode: 0,
errmsg: "",
data: userinfo
});
}, 2000);
});
};
const userInfoStore = defineStore("userInfoStore", () => {
const user = ref<user>();
const getUserRequest = () => {
return new Promise<user | undefined>((resolve, reject) => {
getUserInfo()
.then((res: any) => {
const { errcode, errmsg, data } = res;
if (errcode === 0) {
user.value = data;
resolve(user.value);
} else {
reject(errmsg);
}
})
.catch((err: any) => {
reject(err);
});
});
};
const info = computed(() => {
return user;
});
return { getUserRequest, info };
});
export default userInfoStore;