angular – 服务相互依赖
发布时间:2020-12-17 07:06:20 所属栏目:安全 来源:网络整理
导读:在我的Angular 2应用程序中,我有两个相互依赖的服务(服务A来自服务B的调用方法,反之亦然). 以下是相关代码: app.component.ts: import {Component} from 'angular2/core';import {TempService} from '../services/tmp';import {Temp2Service} from '../ser
在我的Angular 2应用程序中,我有两个相互依赖的服务(服务A来自服务B的调用方法,反之亦然).
以下是相关代码: app.component.ts: import {Component} from 'angular2/core'; import {TempService} from '../services/tmp'; import {Temp2Service} from '../services/tmp2'; @Component({ selector: 'my-app',templateUrl: 'app/app/app.component.html',providers: [TempService,Temp2Service] }) export class AppComponent { (...) } 服务1: import {Injectable} from 'angular2/core'; import {Temp2Service} from './tmp2'; @Injectable() export class TempService { constructor (private _sessionService: Temp2Service) {} } 服务2: import {Injectable} from 'angular2/core'; import {TempService} from './tmp'; @Injectable() export class Temp2Service { constructor (private _sessionService: TempService) {} } 运行该应用程序会导致以下错误:
在其中一个服务中评论构造函数时,应用程序运行正常.所以我的猜测是两个服务的“交叉引用”导致了这个问题. 你知道这里出了什么问题吗?或者我的方法已经错了? 解决方法
这是一种称为循环依赖的.这不是Angular2本身的问题.我所知道的任何语言都不允许这样做.
您将需要重构代码以删除此循环依赖项.您可能需要将其中一项服务拆分为新服务. 如果您遵循单一责任原则,您将发现您不会进入循环依赖陷阱. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |