false;/*将未触及的请求传递给下一个请求处理程序。/@Injectable()exportclassNoopInterceptorimplementsHttpInterceptor{intercept(req:HttpRequest,next:HttpHandler):Observable>{returnnext.handle(req);}}这个NoopInterceptor是由Angular的依赖注入(DI)系统管理的服务。与其他服务一样,开发人员必须先提供拦截器类,然后应用程序才能使用它。由于拦截器是HttpClient服务的可选依赖项(`optionaldependencies`),因此必须在提供HttpClient的同一注入器或注入器的父注入器中提供它们。创建HttpClient后DI提供的拦截器将被忽略。如果应用程序在应用程序的根注入器中提供HttpClient作为在AppModule中导入HttpClientModule的副作用,那么拦截器也应该在AppModule中提供。从“@angular/common/http”导入HTTP_INTERCEPTORS注入令牌后,以以下形式为NoopInterceptor提供提供程序。{provide:HTTP_INTERCEPTORS,useClass:NoopInterceptor,multi:true},注意上面代码的`multi:true`选项。此设置告诉Angular,`HTTP_INTERCEPTORS`是一个用于注入“一组值”而不是“单个值”的“多提供商”令牌。考虑创建一个“桶索引”文件,将所有拦截器提供程序代码收集到一个httpInterceptorProviders数组中。这个桶索引文件的文件名为index.ts,内容如下:从'./noop-interceptor'导入{NoopInterceptor};/*从外到内顺序的Http拦截器提供者/exportconsthttpInterceptorProviders=[{provide:HTTP_INTERCEPTORS,useClass:NoopInterceptor,multi:true},];然后我们直接从AppModule的index.ts导入httpInterceptorProviders数组。Yes:providers:[httpInterceptorProviders],我们来看看Spartacus的SiteContextInterceptor是如何导入到NgModule中的。发现它被导入到一个名为“SiteContextOcc”的模块中。在这个模块中,我们使用`useExisting`代替`useClass`:useExisting相当于provideralias,即别名。{provide:Class2,useExisting:Class2}以上代码不会导致AngularDI框架主动为Class2创建实例。如果构造函数在运行时请求Class2的实例,AngularDI会为依赖项寻找另一个`provider`,其key是Class2,并从这个Class2provider中获取注入实例。开发人员可以将useExisting视为对另一个提供者或别名的引用。