我有一個消息服務,每當調用API方法時都會發出消息。這個想法是這樣的,我的應用程序中的所有其他組件都可以調用服務中的方法來顯示錯誤或成功消息。在將值添加到可觀察值前等待x秒
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
});
}
的想法是,任何其他組件可以調用messageService.showError('my error message', 3000)
。我很困惑如何讓我的showError
方法在3秒鐘後調用hideMessage
方法,或者調用者提供給time
的時間長。
聽起來像你需要一個['delay'](http://reactivex.io/documentation/operators/delay.html)。 – jonrsharpe