3 秒后自动关闭对话框 angular 5 observables

Posted

技术标签:

【中文标题】3 秒后自动关闭对话框 angular 5 observables【英文标题】:closing a dialog box automatically after 3 seconds angular 5 observables 【发布时间】:2018-12-01 09:51:24 【问题描述】:

我有一个订阅,它接收到一个信号,该信号在我的 html 中显示一个对话框的布尔值设置为 true。我希望对话框在 3 秒后自动消失。

我的订阅中的 observable 有问题。

 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;
                );
          
        
      );

我相信我需要创建一个 observable 类型的对象,然后订阅它。我认为是takeWhile 让我失望了。接下来我该怎么做?

【问题讨论】:

【参考方案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);
    
);

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

【讨论】:

哇,我正在检查它,看看它是如何进行的,我会在之后给出分数。拥抱和亲吻 至于最后的小建议......字!

以上是关于3 秒后自动关闭对话框 angular 5 observables的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForm 怎么设置弹出对话框然后2秒后自动关闭

如何做30秒后自动跳转网页

30秒后自动跳转网页

02对话框显示一会自动消失

Angular Material - 不关闭 Material 小吃吧

禁用在角度材料对话框区域外单击以关闭对话框(使用 Angular 版本 4.0+)