Angular如何解决服务中的循环依赖关系



我需要在两个服务之间进行通信,因为这两个服务都依赖A->B和B->A.但在实现时出现循环依赖性错误。

@Injectable()
export class ServiceA{
constructor(private serviceB:ServiceB){
}
OnInit(){
this.serviceA.Callme();
}
afterServiceBInitialization(){
//doing logic here
}
}
@Injectable()
export class ServiceB{
constructor(private serviceA:ServiceA){
}
Callme(){
console.log("hello");
this.serviceA.afterServiceBInitialization()
}
}

但是得到循环依赖错误。如何进行此操作?

您可以将一个服务导入另一个服务,但两个服务不能相互导入,否则会产生循环依赖问题。

相反,您可以将这两个服务导入到组件中,并通过组件传递值,而不是直接从一个服务到另一个服务。

例如:

import { firstService } from '../services/first.service';
import { secondService } from '../services/second.service';
@Component({
...
})
export class MyComponent implements OnInit, {
constructor(
private first: FirstService,
private second: SecondService
) { }
ngOnInit(): void {
second.value = first.value
}
}

最新更新