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
如果全局,控制器和方法级别的拦截器同时存在,它们将按照以下优先级执行(由高到低,只会执行优先级高的拦截器):
方法拦截器
控制器拦截器
全局拦截器