3 秒后自动关闭对话框 angular 5 个可观察值

closing a dialog box automatically after 3 seconds angular 5 observables

我有一个订阅会收到一个信号,当我的 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 让我失望了。接下来我该做什么?

您可以按照更简单、我认为更正确的方式关闭对话框 - 使用常规 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);
    }
});

没有必要把生活复杂化,简单的事情就简单的做。