У меня есть служба оповещений, которая связывает рабочие компоненты с компонентом оповещения, который отображает всплывающее окно. Я работаю с EventEmitters
вот так:
alert.service.ts
export class AlertService {
@Output() alert: EventEmitter<any> = new EventEmitter()
sendAlertCont(data: any) {
this.getAlert.emit(data)
}
}
Итак, в любом компоненте я вызываю сервисную функцию для активации оповещения компонент
any.component.ts
export class AnyComponent {
constructor(private _alert: AlertService){}
clickedFunction(){
this._alert.sendAlertCont('You don't have permissions')
}
alert.component.ts
export class AlertComponent implements OnInit {
constructor(private _alert: AlertService){}
ngOnInit(){
this._alert.alert.subscribe(data => {
this.alerta = data
$('app-alert').fadeToggle()
})
}
Вопрос в следующем:
Как мне сделать сервисную функцию под названием sendAlertCont()
, которая возвращает параметры отправки ответа в data
и получение ответа в компоненте, который отправил предупреждение:
AnyComponent : отправить данные => AlertService : активный Alert => AlertComponent : показать предупреждение и опции
, а затем
AlertComponent : отправить ответ => AlertService : получить и отправить ответ => AnyComponent : получить ответ
, но все в одной и той же функции , Возможно ли это?
Я думал о чем-то похожем на Observable, Promise o Asyn c Функция вроде:
this._alert.sendAlertCont('You don't have permissions').then(...)
var res = await this._alert.sendAlertCont('You don't have permissions')
this._alert.sendAlertCont('You don't have permissions').suscribe(...)