为什么我在升级到 Angular 9 时遇到循环依赖问题

Why I am getting cyclic dependency issue when I upgrade to Angular 9

我有这个文件,它的代码是这样的

import { Injectable } from '@angular/core';
import { I18n } from '@ngx-translate/i18n-polyfill';
import { isNumber } from 'lodash';
import { ConfirmationService, MessageService } from 'primeng/api';

export enum ConfirmationType {
  Delete,
  Navigate,
  Unsaved,
}

export enum SuccessMessage {
  Cloned,
  Created,
  Deleted,
  Saved,
  Reverted,
}

@Injectable()
export class MessagingService {
  constructor(
    private readonly _i18n: I18n,
    // tslint:disable-next-line:ban-types
    private readonly _messageService: MessageService,
    private readonly _confirmationService: ConfirmationService,
  ) { }

我得到的错误是:

错误:无法实例化循环依赖!消息服务

发生此错误是因为您也在 MessageService 中实例化了 MessagingService

这样你创建了一个实例化循环。

MessagingService -> MessageService -> MessagingService -> ...


您必须以一种方式重构您的代码,使它们无需相互实例化即可访问所需的数据和函数。