Я предполагаю, что перехватчики anguler выполняются в соответствии с порядком их объявления в модуле.
@NgModule({
imports: [...],
declarations: [...],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: FirstInterceptor,
multi: true,
},
{
provide: HTTP_INTERCEPTORS,
useClass: SecondInterceptor,
multi: true,
}
]
})
export class AppModule {
constructor() {
}
}
FirstInterceptor будет выполняться перед SecondInterceptor.
Но как насчет порядка, когда перехватчик находится в импортированный модуль?
@NgModule({
declarations: [...],
imports: [...],
exports: [...],
})
export class ImportedModule{
static forRoot() {
return {
ngModule: ImportedModule,
providers: [
...,
{
provide: HTTP_INTERCEPTORS,
useClass: ThirdInterceptor,
multi: true,
}
],
};
}
}
@NgModule({
imports: [
...,
ImportedModule.forRoot(),
],
declarations: [...],
providers: [
...
{
provide: HTTP_INTERCEPTORS,
useClass: FirstInterceptor,
multi: true,
},
{
provide: HTTP_INTERCEPTORS,
useClass: SecondInterceptor,
multi: true,
}
]
})
export class AppModule {
constructor() {
}
}
Согласно моим тестам, импортированный модуль-перехватчик (ThirdInterceptor) выполняется после перехватчиков AppModule.
В моей ситуации это не ожидаемое поведение, я хочу импортированный модуль-перехватчик, который будет выполнен первым, возможно ли это?