我有一个订阅,该订阅接收到一个信号,该信号为一个布尔值以将我的html中的对话框显示为true。我希望对话框在3秒后自动消失。
我在订阅中的可观察内容有问题。
this.updatedvolleyvar = this.venuevolly.receiveupdated()
.subscribe(
(req: any)=>{
if (req != null){
let stopcondition = false;
this.showupdated = true;
Observable.interval(3000)
.takeWhile(() => !stopcondition)
.subscribe(r =>{
this.showupdated = false;
stopcondition = true;
});
}
}
);
我认为我需要创建一个可观察类型的对象,然后订阅它。我认为是takeWhile
使我失望。接下来我该怎么办?
答案 0 :(得分:1)
您可以按照更简单(我认为)来关闭对话框的正确方法进行操作-使用常规setTimeout
:
this.updatedvolleyvar = this.venuevolly.receiveupdated()
.subscribe((req: any) => {
if (req != null) {
let stopcondition = false;
this.showupdated = true;
setTimeout(() => {
this.showupdated = false;
stopcondition = true;
}, 3000);
}
});
没有必要让您的生活复杂化,简单的事情就可以简单地完成。