1
- import type { AxiosRequestConfig , AxiosResponse , InternalAxiosRequestConfig } from 'axios'
1
+ import type { AxiosError , AxiosRequestConfig , AxiosResponse , InternalAxiosRequestConfig } from 'axios'
2
2
import axios from 'axios'
3
3
import { assign } from 'lodash-es'
4
4
@@ -12,6 +12,7 @@ import { assign } from 'lodash-es'
12
12
export function useRequest ( config ?: AxiosRequestConfig , interceptors ?: {
13
13
request ?: ( config : InternalAxiosRequestConfig ) => InternalAxiosRequestConfig
14
14
response ?: ( config : AxiosResponse ) => AxiosResponse
15
+ responseError ?: ( error : AxiosError ) => AxiosError
15
16
} ) {
16
17
const request = axios . create ( assign ( {
17
18
baseURL : import . meta. env . VITE_APP_REQUEST_URL ,
@@ -25,20 +26,26 @@ export function useRequest(config?: AxiosRequestConfig, interceptors?: {
25
26
const timestamp = new Date ( ) . getTime ( )
26
27
config . headers [ 'X-Timestamp' ] = timestamp
27
28
config . params = assign ( { } , config . params , { _t : timestamp } )
28
-
29
+ // todo something...
29
30
return config
30
31
}
31
32
32
33
const interceptorsResponse = ( response : AxiosResponse ) => {
33
- if ( response . status === 200 ) {
34
- return response
34
+ // todo something...
35
+ return response
36
+ }
37
+
38
+ const interceptorsResponseError = ( error : AxiosError ) => {
39
+ if ( ! error . response ) {
40
+ return error
35
41
}
36
- return Promise . reject ( response )
42
+ // todo something...
43
+ return error
37
44
}
38
45
39
46
request . interceptors . request . use ( interceptors ?. request || interceptorsRequest )
40
47
41
- request . interceptors . response . use ( interceptors ?. response || interceptorsResponse )
48
+ request . interceptors . response . use ( interceptors ?. response || interceptorsResponse , interceptors ?. responseError || interceptorsResponseError )
42
49
43
50
return {
44
51
request,
0 commit comments