Skip to content

Commit fb8f39f

Browse files
author
kieranwong9865
committed
feat: add error interceptor for axios
1 parent 80ddaf8 commit fb8f39f

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/composables/request.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios'
1+
import type { AxiosError, AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios'
22
import axios from 'axios'
33
import { assign } from 'lodash-es'
44

@@ -12,6 +12,7 @@ import { assign } from 'lodash-es'
1212
export function useRequest(config?: AxiosRequestConfig, interceptors?: {
1313
request?: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig
1414
response?: (config: AxiosResponse) => AxiosResponse
15+
responseError?: (error: AxiosError) => AxiosError
1516
}) {
1617
const request = axios.create(assign({
1718
baseURL: import.meta.env.VITE_APP_REQUEST_URL,
@@ -25,20 +26,26 @@ export function useRequest(config?: AxiosRequestConfig, interceptors?: {
2526
const timestamp = new Date().getTime()
2627
config.headers['X-Timestamp'] = timestamp
2728
config.params = assign({}, config.params, { _t: timestamp })
28-
29+
// todo something...
2930
return config
3031
}
3132

3233
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
3541
}
36-
return Promise.reject(response)
42+
// todo something...
43+
return error
3744
}
3845

3946
request.interceptors.request.use(interceptors?.request || interceptorsRequest)
4047

41-
request.interceptors.response.use(interceptors?.response || interceptorsResponse)
48+
request.interceptors.response.use(interceptors?.response || interceptorsResponse, interceptors?.responseError || interceptorsResponseError)
4249

4350
return {
4451
request,

0 commit comments

Comments
 (0)