Javascript 角度使用全局拦截器

Javascript 角度使用全局拦截器,javascript,angular,typescript,multipartform-data,angular-http-interceptors,Javascript,Angular,Typescript,Multipartform Data,Angular Http Interceptors,我想在全球范围内使用2个拦截器(httpInterceptorProviders, jwtInterceptorProviders)但它在我的惰性模块中不起作用。 我有CoreModule和X个延迟加载模块。奇怪的是,我有一个由swagger generator(http服务)自动生成的代码,该调用被截获,但当我使用自定义http服务截获器时,不会截获该请求 Index.ts我从哪里获得提供者 /** Http interceptor providers in outside-in order

我想在全球范围内使用2个拦截器(httpInterceptorProviders, jwtInterceptorProviders)但它在我的惰性模块中不起作用。 我有CoreModule和X个延迟加载模块。奇怪的是,我有一个由swagger generator(http服务)自动生成的代码,该调用被截获,但当我使用自定义http服务截获器时,不会截获该请求

Index.ts我从哪里获得提供者

/** Http interceptor providers in outside-in order */
export const httpInterceptorProviders = [
    { provide: HTTP_INTERCEPTORS, useClass: HttpErrorInterceptor, multi: true }
];

export const jwtInterceptorProviders = [
    { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true }
];
CoreModule,我在提供程序中导入我的拦截器

/** Http interceptor providers in outside-in order */
export const httpInterceptorProviders = [
    { provide: HTTP_INTERCEPTORS, useClass: HttpErrorInterceptor, multi: true }
];

export const jwtInterceptorProviders = [
    { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true }
];
@NgModule({
进口:[
//棱角的
公共模块,
HttpClientModule,
//ngrx
forRoot(还原程序,{metaReducers}),
StoreRouterConnectionModule.forRoot(),
EffectsModule.forRoot([AuthEffects,GoogleAnalyticsEffects]),
环境与生产
? []
:StoreDevtoolsModule.instrument({
名称:“角形NgRx材料起动器”
}),
//第三方
TranslateModule.forRoot({
加载器:{
提供:TranslateLoader,
使用工厂:HttpLoaderFactory,
deps:[HttpClient]
}
}),
apimule.forRoot(()=>{
返回新配置({
基本路径:`${environment.HOST}:${environment.PORT}`,
apiKeys:{授权:}
});
})
],
声明:[],
供应商:[
LocalStorageService,
AuthGuardService,
动画服务,
标题服务,
//retryHttpInterceptorProviders,
{提供:ErrorHandler,useClass:AppErrorHandler},
httpInterceptorProviders,
JWT拦截器提供程序,
{提供:RouterStateSerializer,useClass:CustomSerializer},
{
提供:锤式装载机,
useValue:()=>新承诺(()=>{})
},
分析服务,
停车服务,
国家服务,
PetsServiceWithUpload
],
导出:[TranslateModule]
})
导出类核心模块{
建造师(
@可选()
@SkipSelf()
父模块:核心模块
) {
if(父模块){
抛出新错误(“CoreModule已加载。仅在AppModule中导入”);
}
}
}
导出函数HttpLoaderFactory(http:HttpClient){
返回新的TranslateHttpLoader(
http,,
`${environment.i18nPrefix}/assets/i18n/`,
“.json”
);
}
应用模块

@NgModule({
  declarations: [AppComponent, NavigationComponent, ErrorsComponent],
  imports: [
    BrowserAnimationsModule,
    BrowserModule,
    SharedModule,
    AppRoutingModule,
    AuthModule,
    ThemeModule.forRoot(),
    CoreModule
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}
拦截器

@Injectable()
导出类JwtInterceptor实现HttpInterceptor{
私有isRefreshing=false;

private refreshTokenSubject:BehaviorSubject和我确保我只在我的核心模块中导入HttpClientModule。

用于全局侦听器和核心模块中的提供程序应添加@Injectable({ providedIn:'根' })在像这里这样的拦截器顶部

查看此博客,它可能会让您了解我的问题是如何在核心模块中使用拦截器,并将其共享给延迟加载模块,但谢谢!