gpt4 book ai didi

angular - 具有自定义 HTTP 和 ConfigService 循环依赖的 DI

转载 作者:太空狗 更新时间:2023-10-29 16:54:27 26 4
gpt4 key购买 nike

我正在尝试实现一个 ConfigService 来为项目中的正确环境检索正确的配置。我目前遇到了循环依赖

(index):28 Error: (SystemJS) Provider parse errors:
Cannot instantiate cyclic dependency! Http: in NgModule AppModule
Error: Provider parse errors:

我已经研究了代码,但我认为存在问题:

自定义HTTP

constructor(backend: XHRBackend, options: RequestOptions, public spinnerService: SpinnerService, public exceptionService: ExceptionService, public configService: ConfigService) 

异常服务

constructor(private _notificationService: NotificationService, private _spinnerService: SpinnerService, private _configService: ConfigService, private _router: Router)

配置服务

constructor(private http: Http) {}

如您所见,我在这张图中说明了一个循环依赖关系(没有任何好的约定):

enter image description here

我现在的问题是,如何解决?我听说过 Injector,但我不确定我是否真的可以在这种情况下使用它。

预先感谢您的回答。

最佳答案

DI 无法解决循环依赖。解决方法是注入(inject)注入(inject)器并强制获取实例:

@Injectable()
class ConfigService {
private http: Http;
constructor(injector:Injector) {
setTimeout(() => this.http = injector.get(Http);
}
}

关于angular - 具有自定义 HTTP 和 ConfigService 循环依赖的 DI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40860202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com