Я использую HTTP_INTERCEPTORS
в angular4. Для этого я создал класс HttpServiceInterceptor
, который реализует интерфейс HttpInterceptor
и предоставляет определение метода intercept
. Затем зарегистрировал провайдера для HTTP_INTERCEPTORS
вот так
providers: [{
provide: HTTP_INTERCEPTORS,
useClass: HttpServiceInterceptor,
multi: true
}],
и это работает нормально. Но все же я не понимаю, что здесь означает multi:true
? Я прочитал этот ответ.
Если я уберу опцию multi:true
, тогда будет ошибка на стороне браузера
Uncaught Error: Provider parse errors:
Mixing multi and non multi provider is not possible for token InjectionToken_HTTP_INTERCEPTORS ("[ERROR ->]"): in NgModule AppModule in ./AppModule@-1:-1
at NgModuleProviderAnalyzer.webpackJsonp.487.NgModuleProviderAnalyzer.parse (vendor.js:36335)
at NgModuleCompiler.webpackJsonp.487.NgModuleCompiler.compile (vendor.js:43184)
at JitCompiler.webpackJsonp.487.JitCompiler._compileModule (vendor.js:51527)
at vendor.js:51472
at Object.then (vendor.js:26354)
at JitCompiler.webpackJsonp.487.JitCompiler._compileModuleAndComponents (vendor.js:51470)
at JitCompiler.webpackJsonp.487.JitCompiler.compileModuleAsync (vendor.js:51399)
at PlatformRef_.webpackJsonp.0.PlatformRef_._bootstrapModuleWithZone (vendor.js:4746)
at PlatformRef_.webpackJsonp.0.PlatformRef_.bootstrapModule (vendor.js:4732)
at Object.<anonymous> (app.js:23366)
Означает ли это, что HTTP_INTERCEPTORS
является мультипровайдером, который инициализирует несколько директив или компонентов? Если да, то каковы другие директивы и компоненты?