无忧,clt 2023-02-07 20:28 采纳率: 100%
浏览 41
已结题

vue3+pinia 报错

问题遇到的现象和发生背景

vue3 +pinia
在请求当中加拦截器实现跳转会有加载动画

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
mport axios from 'axios'
import { BASE_URL, TIMEOUT } from './config'
import useMainStore from '@/stores/modules/main'

const mainStore = useMainStore()

class HYRequest {
  constructor(baseURL, timeout=10000) {
    this.instance = axios.create({
      baseURL,
      timeout
    })

    this.instance.interceptors.request.use(config => {
      mainStore.isLoading = true
      return config
    }, err => {
      return err
    })
    this.instance.interceptors.response.use(res => {
      mainStore.isLoading = false
      return res
    }, err => {
      mainStore.isLoading = false
      return err
    })
  }

运行结果及详细报错内容

vue-router.mjs:3451

   ReferenceError: Cannot access 'useloading' before initialization
at index.js?t=1675772436365:8:16
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

百度搜索是变量提升,和执行顺序没搞懂

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-07 22:33
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 无忧,clt 2023-02-07 20:32
    关注

    这块是代码 上部分截错跪求大佬

    import axios  from "axios";
    
    
    import {BaseUrl,Timout} from './config'
    import useloading from "@/pinia/loading";
    
    //简单封装axios 
    const loading =useloading()
    class Hyrequest{
        constructor(baseURL,timout=1000){
         
            this.intens=axios.create({
                baseURL,
                timout
            })
            请求拦截器
            this.intens.interceptors.request.use(config => {
                loading.isshowloading = true
                return config
              }, err => {
                return err
              })
              this.intens.interceptors.response.use(config=>{
                loading.isshowloading = false
                return config
              },err=>{
                return err
              })
        }
        
        request(config){
            // loading.isshowloading=true
            return new Promise((resolve,rejest)=>{
                // loading.isshowloading=false
                //then 返回成功的函数
                this.intens.request(config).then(res=>{
                  resolve(res.data)
                }
                ).catch(err=>{
                    // loading.isshowloading=false
                    rejest(err)
                })
    
            })
        }
        get(config){
              return this.request({...config, method:"get"})
        }
        post(config){
            return this.request({...config, method:"post"})
      }
    }
    export default new Hyrequest(BaseUrl,Timout)
    
    
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 2月7日

悬赏问题

  • ¥15 最小生成树问题 Prim算法和Kruskal算法
  • ¥25 医院住院病人呼叫器设计
  • ¥15 不想和现在的团队合作了,怎么避免他们对程序动手脚
  • ¥30 c++类和数组实验代码
  • ¥20 C语言字符串不区分大小写字典排序相关问题
  • ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据
  • ¥15 关于Linux的终端里,模拟实现一个带口令保护的屏保程序遇到的输入输出的问题!(语言-c语言)
  • ¥30 请问,这个嵌入式Linux系统怎么分析,crc检验区域在哪
  • ¥15 二分类改为多分类问题
  • ¥15 Unity微信小游戏上调用ReadPixels()方法报错