Angular порядок перехватчиков с перехватчиком в импортированном модуле - PullRequest
0 голосов
/ 12 апреля 2020

Я предполагаю, что перехватчики 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.

В моей ситуации это не ожидаемое поведение, я хочу импортированный модуль-перехватчик, который будет выполнен первым, возможно ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...