每 10 秒调用一个函数 Angular2

2024-01-04

我正在尝试创建一个Timer这称为API call每 10 秒,我使用setTimeOut但问题是,它变成了无限循环,即使我推送到另一个页面,它也会继续加入 if 条件。

例子 :

我在启动 10 秒 API 调用的方法上调用此方法

setTimeout(() => {
    this.onTimeOut();
}, 1000);

这就是onTimeOut()方法...

onTimeOut() {
    this.ApiCall().then(
    success => {
    if(success ['ok'] == 0){
        this.navCtrl.push(myPage);
    }
    },
    error => { console.log(error); });
}
setTimeout(() => {
    this.onTimeOut();
}, 1000);
}

我听说过Debounce and rxjs/rs但我对它们不熟悉,你能给我一些建议吗?或者,如果这种方式更有效,请继续向我解释为什么它会变成循环。

目标是当它加入 if 并推送页面时,停止计时器。


更好地使用可观察量

this.sub = Observable.interval(10000)
    .subscribe((val) => { console.log('called'); });

停止它使用

this.sub.unsubscribe();

确保导入interval with

import 'rxjs/add/observable/interval';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每 10 秒调用一个函数 Angular2 的相关文章

随机推荐

  • 仅当集合中存在列时,才在 QueryDSL JPA 中选择多个列

    我有一个列列表List
  • 如何使用 C# 隐藏 OpenXML 电子表格中的列?

    我将 DocumentFormat OpenXML 与 C 一起使用 如何隐藏特定列 部分代码 using SpreadsheetDocument sDocument SpreadsheetDocument Open resultFileN
  • Dart 库布局

    我正在努力解决 Dart 库布局问题 我尝试了以下方法 lib A dart B dart my lib dart 在哪里 达特 class A B myB B dart class A B myB my lib dart library
  • 无法更新快照命名空间:无法在“/etc/docker”中创建符号链接:现有文件妨碍

    Docker命令在重启后不起作用 使用sudo reboot Ubuntu 20 04 服务器 现在 对于任何使用 docker 的命令 它都会给我一个错误 例如 docker help cannot update snap namespa
  • LESS css - JS 解析器与编译器

    我想知道是否有人知道 LESS css 的 JS 解释器是否会导致页面加载出现明显的延迟 我更喜欢使用 JS 解析器 因为它更容易使用 因为我不必在每次编辑后运行编译器 并且更容易管理源代码 因为 SCM 工具不会同时跟踪 less 和 c
  • Java/GWT/MySQL:连接被拒绝?

    我正在开发一个 GWT Web 应用程序 并尝试从我的 RemoteServiceServlet 实现 用于 rpc 连接到 mysql 数据库 服务器运行 我可以从我工作的机器连接到数据库 出于测试目的 我编写了一个仅连接到数据库的小程序
  • Firebase 获取 - 无访问控制允许来源

    我正在开发一个应用程序React Redux我有我的JSON数据库内FirebaseD B 为了做到这一点 我正在尝试fetch我的数据来自有效的 URL 通过 Firebase 模拟器验证 let firebase https fireb
  • Azure存储表-插入批量行并检查它们是否存在

    我发送对某些服务的查询并返回结果 我想知道我过去是否已经得到了相同的 答案 所以 我打算使用Azure Table作为缓存机制 我做了这个小 POC TableBatchOperation batchOperation new TableB
  • 如何以编程方式运行 Java 应用程序中的所有 JUnit 测试?

    通过 Eclipse 我可以轻松运行应用程序中的所有 JUnit 测试 我希望能够从应用程序 jar 在目标系统上运行测试 而无需 Eclipse 或 Ant 或 Maven 或任何其他开发工具 我可以看到如何从命令行运行特定的测试或套件
  • 如何使用pyInstaller完整打包所有必需的库?

    我已经使用 pyinstaller 创建了我的 python 应用程序的独立应用程序 pyinstaller windowed app py 它实际上在我的计算机上运行并且按预期工作 但是当我在我朋友的计算机上尝试它时 它不起作用 它运行但
  • 选择表列名称作为值[重复]

    这个问题在这里已经有答案了 给定一个具有任意数量的记录 X 和任意数量的列 Y 的 SQL 表 RecordID Column1 Column 2 Column 3 Column Y 1 Value11 Value12 Value13 Va
  • DPI 无法正确缩放

    我创建了一个自定义 UserControl 其功能与 numbericUpDown 非常相似 但具有各种增强功能 例如 它可以显示分数 但是 此控件的缩放比例不如窗体上的其他一些控件 这迫使我的 UI 看起来很尴尬 我尝试了控件及其父控件的
  • 片段 onHiddenChanged 未调用

    我最近将 Fragments 添加到我的应用程序中 对于新的应用程序 我需要获得 显示我的片段后立即通知 所以我可以尽快做一些计算 片段再次显示 我的 Fragment 与 TabIndicator 一起使用 并且仅使用一个 Fragmen
  • REXML::Document.new 我们可以在这一行给出编码参数吗?

    doc REXML Document 新文件 每当我的 xml 文件包含 UTF 8 以外的一些特殊字符时 我的代码就会失败 REXML ParseException
  • 在配置私有 GKE 集群时了解 --master-ipv4-cidr

    我试图进一步了解当我在 Google 的 Kubernetes Engine 中配置私有集群时到底发生了什么 Google 在此提供了一个配置私有集群的示例 其中控制平面服务 例如 Kubernetes API 位于172 16 0 16
  • 如何获取访问Google Play开发者API的授权

    我正在尝试访问 Google Play 开发者 APIhttps developers google com android publisher https developers google com android publisher 为
  • 以编程方式在 WinForms VB.NET/C# 中聚焦/突出显示 ListView 列标题

    在 WinForms ListView 上 将鼠标悬停在列标题上会导致其聚焦或强调 例如 我需要动态地执行此操作 因为在我的程序中使用左右键切换焦点列 尽管广泛搜索了以下属性 ListView Columns i ListView Colu
  • Haskell 在现实世界中的用途是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 关于 Haskell 有很多炒作 但是 很难获得有关如何在现实世界应用程序中使用它的信息 Haskell 最流行的项目 用法是什么 为什么它擅长
  • typeahead.js 预取不起作用

    我无法让 typeahead js 中的预取函数工作 但它对于本地数据工作得很好 我首先尝试链接到返回 json 对象或列表的 servlet 但过了一会儿我放弃了 并开始检查提供的示例 因此 他们的示例链接到的页面如下所示 http tw
  • 每 10 秒调用一个函数 Angular2

    我正在尝试创建一个Timer这称为API call每 10 秒 我使用setTimeOut但问题是 它变成了无限循环 即使我推送到另一个页面 它也会继续加入 if 条件 例子 我在启动 10 秒 API 调用的方法上调用此方法 setTim