Xal*_*ion 6 subject rxjs rxjs5 angular angular5
我的AlertService有
private subject = new Subject<Alert>();。我想在5秒钟后专心清除警报。我可以这样使用setTimeout():
autoClear(alertId?: string) {
setTimeout(
() => this.subject.next(new Alert({alertId})),
5000);
}
Run Code Online (Sandbox Code Playgroud)
我尝试使它更优雅,并创建了以下代码:
autoClear(alertId?: string) {
const delay = new Observable(x => {
x.next();
}).delay(5000).subscribe(() => {
this.subject.next(new Alert({alertId}));
delay.unsubscribe();
});
}
Run Code Online (Sandbox Code Playgroud)
这两个示例都可以工作,但看起来不像是使用RxJS的正确方法。我该如何改善?
小智 3
new Observable(x => {
x.next();
}).delay(5000);
Run Code Online (Sandbox Code Playgroud)
是正确的方法。使用 Pipeables 运算符的新方法是
new Observable(x => {
x.next();
}).pipe(delay(5000));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |