ts2307 node_modules has exported error compat cannot typescript angular rxjs observable

typescript - node_modules - RxJs obtiene valor de observable



rxjs angular 7 (2)

En componente:

singleEvent$: Observable<Event>;

En init, me pongo observable

this.singleEvent$ = this._eventService.events$ .map(function (events) { let eventObject = events.find(item => item.id === eventid); let eventClass: Event = new Event(eventObject); return eventClass; });

¿Cómo puedo tomar el valor actual como event.name ?


Para agregar a la respuesta de Günter Zöbauer, un BehaviorSubject puede ser lo que está buscando si está buscando obtener el valor dentro de su Observable de forma sincrónica.

Un BehaviorSubject es un Observable que siempre tiene un valor, y puede llamar a myBehaviorSubject.getValue() o myBehaviorSubject.value para recuperar sincrónicamente el valor que BehaviorSubject tiene actualmente.

Ya que también es un observable, aún puede suscribirse a BehaviorSubject para reaccionar de forma asíncrona a los cambios en el valor que tiene (por ejemplo, myBehaviorSubject.subscribe(event => { this.event = event }) ) y usar la canalización async en la plantilla de su componente (por ejemplo, {{ myBehaviorSubject | async }} ).

Aquí hay algunos usos para que coincida con su ejemplo dado para crear un BehaviorSubject en su componente desde el servicio dado:

@Component({ //... }) export class YourComponent implements OnInit { singleEvent$: BehaviorSubject<Event>; constructor(private eventService: EventService){} ngOnInit(){ const eventid = ''id''; // <-- actual id could go here this.eventService.events$ .pipe( map(events => { let eventObject = events.find(item => item.id === eventid); let eventClass: Event = new Event(eventObject); return eventClass; }) ) .subscribe(event => { if(!this.singleEvent$){ this.singleEvent$ = new BehaviorSubject(event); } else { this.singleEvent$.next(event); } }); } }


Para obtener datos de un observable, debe suscribirse:

this.singleEvents$.subscribe(event => this.event = event);

En la plantilla puede enlazar directamente a los observables utilizando la | async tubería | async :

{{singleEvents$ | async}}