Я хочу показывать всплывающее окно сеанса за каждые 10 минут.Я помещаю выданное время в хранилище сеанса в служебный файл, а также из того же файла, который запускаю таймер.Я делаю это потому, что в каждом ответе я получаю новое время.Таким образом, я передаю выданное время от хранения сеанса до всплывающего окна.Проблема, которую я здесь получаю, заключается в том, что я не могу вызвать компонент из этой конкретной службы, причина в том, что «Круговая зависимость в службе -> компонент -> служба -> компонент»
Это мой файл службы
@Injectable({
providedIn: 'root'
})
export class HttpBaseService {
constructor(public authHttp: HttpClient, private modal: MatDialog,
private toastr: ToastrManager) { }
public handleAPIResponse(response: any) {
if (response.accessToken) {
const tokenInfo =
this.getDecodedAccessToken(response.accessToken);
const issuedTime = tokenInfo.exp;
this.setToken(response.accessToken, issuedTime);
//Here I am starting the timer with latest issued time.
this.startTimer(issuedTime);
}
return response.result;
}
}
startTimer(issuedTime: number) {
///login to calculate time
//call a modal popup here if time is up.
this.modal.open(ModalPopupComponent, {
}
}
Это мой ModalPopupComponent
@Component({
selector: 'app-modal-popup',
templateUrl: './modal-popup.component.html',
styleUrls: ['./modal-popup.component.scss'],
})
export class ModalPopupComponent implements OnInit {
//logic to show countdown of One min to logout automatically
}
Нужно знать, как я могу вызвать модальный компонент из этого сервиса, без какой-либо циклической зависимости.Заранее спасибо