我在angular4中使用HTTP_INTERCEPTORS
。为此,我创建了一个实现HttpInterceptor
接口并提供intercept
方法定义的HttpServiceInterceptor
类。然后像这样注册了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
是一个多提供者,用于初始化多个指令或组件吗?如果是这样,那么其他指令和组件是什么?
这是否意味着HTTP_INTERCEPTORS
是一个多提供者,用于初始化多个指令或组件?那么其他的指令和组件是什么?