Ich habe einen Nachrichtendienst, der immer dann eine Nachricht ausgibt, wenn die API-Methode aufgerufen wird. Die Idee ist, dass alle anderen Komponenten in meiner App Methoden vom Dienst aufrufen können, um entweder Fehler- oder Erfolgsmeldungen anzuzeigen.Warten Sie x Sekunden, bevor Sie beobachtbaren Wert hinzufügen
import { Injectable } from '@angular/core';
import { MessagingComponent } from ',/messaging.component';
import { ReplaySubject } from 'rxjs';
@Injectable()
export class MessageService {
public messages$: ReplaySubject<Object> = new ReplaySubject<Object>(1);
constructor() {
this.messages$.next({
message: '',
type: null
});
}
showError(message: string, time: number): void {
this.messages$.next({
message,
type: 'message-error',
time: time
});
hideMessage(){
this.messages$.next({
message: '',
type: null
});
}
Die Idee ist, dass jede andere Komponente messageService.showError('my error message', 3000)
aufrufen kann. Ich bin verwirrt darüber, wie ich meine Methode, die hideMessage
Methode nach 3 Sekunden aufrufen, oder wie lange der Anrufer für time
zur Verfügung gestellt.
Klingt, als ob Sie eine ['delay'] benötigen (http://reactivex.io/documentation/operators/delay.html). – jonrsharpe