src/lib/service/events/event.service.ts
Triggerable and Subscribable events
Properties |
|
Methods |
on | ||||||||
on(...types: string[])
|
||||||||
Defined in src/lib/service/events/event.service.ts:39
|
||||||||
Listen on a triggered event
Parameters :
Returns :
Observable<Event>
|
trigger | ||||||||||||
trigger(type: string, data?: any)
|
||||||||||||
Defined in src/lib/service/events/event.service.ts:31
|
||||||||||||
Trigger an global event
Parameters :
Returns :
void
|
Public event$ |
event$:
|
Type : Observable<any>
|
Default value : this.eventSource.asObservable()
|
Defined in src/lib/service/events/event.service.ts:18
|
Eventstream to subscribe to |
import {filter} from 'rxjs/operators';
import {Injectable} from '@angular/core';
import {Observable, Subject} from 'rxjs';
import {Event} from '../../interface/event.interface'
/**
* Triggerable and Subscribable events
*/
@Injectable({
providedIn: 'root'
})
export class EventService {
private eventSource = new Subject<Event>();
/**
* Eventstream to subscribe to
*/
public event$: Observable<any> = this.eventSource.asObservable();
/**
* @ignore
*/
constructor() {
}
/**
* Trigger an global event
* @param type Type/key of the event
* @param data Data to be send along with the event
*/
trigger(type: string, data?: any) {
this.eventSource.next({type, data});
}
/**
* Listen on a triggered event
* @param types Type/key of the event
*/
on(...types: string[]): Observable<Event> {
return this.event$
.pipe(filter(event => event && !!types.find(t => t === event.type)));
}
}