У меня есть HttpService, и я хочу сделать refreshTokenInterceptor, но на самом деле у меня проблема с добавлением цепочки then / catch из метода handle, который реализован моими перехватчиками.
class HttpService {
constructor(private interceptors: Interceptor[]) {
}
get() {
this.makeRequest()
}
post() {
this.makeRequest();
}
//other http methods;
makeRequest(patch, body) {
const request = { ...someData }
return this.interceptors.map(interceptor => intercepor.handle(request))
.then(modifiedReq => fetch(patch, modifiedBody))
.then(res => res.json())
}
}
ExampleInterceptor() {
handle (req) {
Promise.resolve(req)
.then(req.headers.authentication = 'Auth Token')
.catch(req => { refreshToken and retry request } )
}
}
У вас есть идея, как создать цепочку из блоков then / catch из методов handle?
На самом деле я хочу иметь что-то вроде углового перехватчика с механизмом обновления токенов, потому что я не сделалне нашел лучшего способа автоматического обновления токена при статусе 401.Может быть, у вас есть лучшее решение, как перехватить эти запросы в вашем абстрактном слое, как я сделал HttpService.