Uni-app HTTP请求封装详解:代码逐行解析
该段代码是一个封装的 HTTP 请求函数,以下是每一段代码的解释:
-
导入了
useMemberStore函数,该函数是从'@/stores/index'模块中导入的。这个函数可能是一个自定义的钩子函数,用于获取用户信息。 -
定义了一个
Data泛型类型,包含了code、msg和result三个属性。 -
定义了
baseURL常量,表示请求的基本 URL。 -
定义了
instance常量,类型为UniApp.InterceptorOptions,用于定义请求拦截器的配置。 -
instance对象有一个invoke方法,该方法接收一个options参数,类型为UniApp.RequestOptions,表示请求配置。 -
在
invoke方法中,首先判断请求的 URL 是否以http开头,如果不是,则将baseURL和options.url拼接起来作为新的 URL。 -
设置请求超时时间为 10000 毫秒。
-
添加小程序端请求头标识,将
'source-client': 'miniapp'添加到请求头中。 -
获取用户令牌(token),如果没有令牌,则直接返回。
-
将用户令牌添加到请求头的
Authorization字段中。 -
使用
uni.addInterceptor方法将instance对象添加为请求和上传文件的拦截器。 -
定义了一个
http函数,使用泛型<T>表示返回的数据类型。 -
http函数接收一个options参数,类型为UniApp.RequestOptions,表示请求配置。 -
http函数返回一个Promise对象。 -
在
Promise的构造函数中,使用uni.request方法发送请求。 -
请求成功时,判断响应的状态码是否在 200 到 299 之间。如果是,则将响应的核心数据
res.data作为resolve的参数返回。 -
如果状态码为 401,表示用户未授权,清除用户信息并跳转到登录页面。
-
其他错误情况下,根据后端返回的错误信息进行轻提示,并将错误信息作为
reject的参数返回。 -
请求失败时,提示网络错误,并将错误信息作为
reject的参数返回。 -
导出
http函数作为默认导出。
原文地址: https://www.cveoy.top/t/topic/qoh3 著作权归作者所有。请勿转载和采集!