Global UseInterceptors
要为应用程序中的每个路由设置请求拦截器, 让我们使用 HttpServicesApplication
对象的 useInterceptorsReq()
和 useInterceptorsRes()
方法。它们的参数是一个或多个拦截器函数。 下面我们来看一下useInterceptorsReq()
和 useInterceptorsRes()
例子:
useInterceptorsReq
ts
const HTTPClient = HttpFactory.create(ApplicationModule)
HTTPClient.useInterceptorsReq(configure => {
const Authorization = 'this is authorization'
if (Authorization && configure.headers)
configure.headers.Authorization = `Bearer ${Authorization}`
return configure
})
useInterceptorsRes
ts
const HTTPClient = HttpFactory.create(ApplicationModule)
HTTPClient.useInterceptorsRes(result => {
console.log('global InterceptorsRes', result)
const callError = result?.status !== 200 || result?.data?.code !== 200
if (!callError) return result.data
return Promise.reject(result) // or throw result
})
上述全局拦截器将应用于所有路由。
TIP
如果全局
,控制器
和方法
级别的拦截器同时存在
,它们将按照以下优先级执行(由高到低,只会执行优先级高的拦截器
):
方法拦截器
控制器拦截器
全局拦截器