useAppStatusLoading.js 854 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // 程序状态的hook接口
  2. import { Loading } from 'quasar';
  3. import SystemApi from 'src/api/SystemApi';
  4. export const useAppStatusLoading = () => {
  5. let timer = null;
  6. const startLoading = async () => {
  7. Loading.show({
  8. message: '正在应用程序配置',
  9. html: true,
  10. });
  11. const sleep = (ms) =>
  12. new Promise((resolve) => {
  13. setTimeout(resolve, ms);
  14. });
  15. // 考虑保存配置后HTTP服务没有立即重启的情况,等待几秒再请求状态接口
  16. await sleep(5000);
  17. const handler = async () => {
  18. const [res, err] = await SystemApi.getInfo();
  19. if (res || err?.error?.status <= 401) {
  20. clearInterval(timer);
  21. Loading.hide();
  22. }
  23. };
  24. timer = setInterval(async () => {
  25. handler();
  26. }, 1000);
  27. handler();
  28. };
  29. return {
  30. startLoading,
  31. };
  32. };