gpt4 book ai didi

angular - 如何延迟主题的下一个(值)?

转载 作者:太空狗 更新时间:2023-10-29 17:27:57 25 4
gpt4 key购买 nike

我的 AlertService 有 private subject = new Subject<Alert>(); .我想在 5 秒后自动清除警报。我可以使用 setTimeout() 来做到这一点像这样:

autoClear(alertId?: string) {
setTimeout(
() => this.subject.next(new Alert({alertId})),
5000);
}

我试图更优雅地做到这一点,并创建了这段代码:

autoClear(alertId?: string) {
const delay = new Observable(x => {
x.next();
}).delay(5000).subscribe(() => {
this.subject.next(new Alert({alertId}));
delay.unsubscribe();
});
}

这两个示例都有效,但它看起来不像是使用 RxJS 的正确方法。我该如何改进它?

最佳答案

new Observable(x => {
x.next();
}).delay(5000);

是正确的方法。管道运算符的新方法是

new Observable(x => {
x.next();
}).pipe(delay(5000));

关于angular - 如何延迟主题的下一个(值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51516721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com