3秒钟后自动关闭对话框角度5可观察到的

时间:2018-06-22 00:29:30

标签: angular rxjs angular2-observables subscriptions

我有一个订阅,该订阅接收到一个信号,该信号为一个布尔值以将我的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使我失望。接下来我该怎么办?

1 个答案:

答案 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);
    }
});

没有必要让您的生活复杂化,简单的事情就可以简单地完成。