第一次不延迟执行setInterval函数

2023-12-31

有一种方法可以配置setIntervaljavascript的方法立即执行该方法,然后用定时器执行


最简单的方法是第一次直接调用该函数:

foo();
setInterval(foo, delay);

然而,有充分的理由避免setInterval- 特别是在某些情况下,整个负载setInterval事件可以立即相继到达,没有任何延迟。另一个原因是,如果你想停止循环,你必须显式调用clearInterval这意味着你必须记住从原始返回的句柄setInterval call.

所以另一种方法是foo使用以下方式触发自身以进行后续调用setTimeout反而:

function foo() {
   // do stuff
   // ...

   // and schedule a repeat
   setTimeout(foo, delay);
}

// start the cycle
foo();

这保证了有at least的间隔delay通话之间。如果需要的话,它还可以更轻松地取消循环 - 您只需不调用setTimeout当达到循环终止条件时。

更好的是,您可以将这一切包装在一个立即调用函数表达式它创建了该函数,然后如上所述再次调用自身,并自动启动循环:

(function foo() {
    ...
    setTimeout(foo, delay);
})();

它一次性定义了函数并启动了循环。

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

第一次不延迟执行setInterval函数 的相关文章

  • Oo 任何 IDE 中的 javascript 代码补全

    你知道有什么IDE可以自动完成这种代码吗 我这里有一个 javascript 类生成器 function var core bind function method scope if method instanceof Function t
  • Angular 2 链式 Promise 并传递拒绝

    应该是一个简单的问题 但是我找不到有关如何做到这一点的文档 像这样链接一个承诺 Making a promise no problem let promise new Promise resolve reject gt let data d
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • 如何在ASP.NET Webform中使用Jquery表单插件?

    我遇到了这个插件 http malsup com jquery form getting started http malsup com jquery form getting started 我想知道如何在 ASP NET WebForm
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

    我正在使用 Puppeteer 和 Jest 来运行一些前端测试 我的测试如下 describe Profile Tab Exists and Clickable settings user gt test Assert that you
  • 如何按照编写的顺序迭代 javascript 对象属性

    我发现了代码中的一个错误 我希望通过最少的重构工作来解决该错误 此错误发生在 Chrome 和 Opera 浏览器中 问题 var obj 23 AA 12 BB iterating through obj s properties for
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 使用 CryptoJS 更改密钥 [重复]

    这个问题在这里已经有答案了 我正在使用 CryptoJS 来加密和解密文本 在这里 我只是获取消息并显示加密和解密消息 我使用DES算法进行加密和解密 这是我的 HTML 文件
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • 在为 RXJS 可观察量编写测试时,如何避免让调度程序通过我的业务逻辑?

    我发现使某些测试通过的唯一方法是显式地将调度程序传递给函数 为了便于说明 请考虑以下函数 function doStuff stream return stream delay 100 filter x gt x 2 0 map x gt
  • 在闪亮的数据表中为每个单元格显示工具提示或弹出窗口?

    有没有什么方法可以为 r闪亮数据表中的每个单元格获取工具提示 有很多方法可以获取悬停行或列 但我找不到一种方法来获取行和列索引并为每个单元格显示不同的悬停工具提示 任何人都可以修改以下代码吗 library shiny library DT
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t
  • 如何将函数内的捕获错误传递给父级

    我有这几行代码示例 想知道下面的逻辑到底如何 try var response child console log why here catch err console log should show this err function c
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • 如何在 Google 地图 V3 中创建编号地图标记?

    我正在制作一张上面有多个标记的地图 这些标记使用自定义图标 但我还想在顶部添加数字 我已经了解了如何使用旧版本的 API 来实现这一点 我怎样才能在V3中做到这一点 注意 当您将鼠标悬停在标记上时 标题 属性会创建一个工具提示 但我希望即使
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • OpenCV4 上没有名为 Windows 和 WINDOW_GUI_EXPANDED 的按钮图标

    我有同样的问题这个问题 https stackoverflow com q 49634045 4483946 当我在 OpenCV 4 中使用带有 WINDOW GUI EXPANDED 的命名窗口时 我得到带有按钮 放大 缩小等 的窗口
  • 永久禁用 Visual Studio 2015 中的 Git 集成

    我使用的是 Android studio 在那里我总是使用 Git 但在 Visual studio 2015 中我使用 VFS 问题是 Visual Studio 始终连接到我的 Git 存储库 而不是 Team Foundation S
  • Powershell - 脚本在函数外部工作但不在函数内工作

    我正在尝试编写一个简单的函数 该函数从指定目录获取文件 使用一个条件过滤它们 然后将结果放回 我想出了如下 如果它没有放置在函数中 则它可以工作 而当放置在函数中时 它只运行Get ChildItem我不知道为什么 这是我的简单代码 fun
  • 如何设置 docker 注册表作为代理?

    我有一台服务器 我们将其命名为 A 它可以访问互联网 并且我可以从该服务器从官方 docker io 注册表中提取图像 我还有其他服务器 B C 出于安全原因 它们不能具有相同的访问权限 但允许访问 A 我还决定在 A 上安装一个私有注册表
  • pytorch中嵌入的加权求和

    I have a sequence of 12 words which I represent using a 12x256 matrix using word embeddings Let us refer to these as I w
  • 每天在特定时间运行 google colab

    我最近构建了一个在Google Colaboratory上运行的Python程序 我需要每天在特定时间运行该程序 那么有什么方法可以安排它在Google Colab上运行吗 你需要创建一个notebooks csv列出所有 Colabora
  • Gradle 构建无法在父级 gradle.properties 文件中找到属性

    我有多个项目 gradle 构建 我正在尝试通过外部化依赖项版本gradle properties 不幸的是 子项目无法在父项目中找到属性gradle properties 所以在父母gradle properties I have SPR
  • 在 d3 中制作响应式动画弧?

    我在d3中看这个动画 http bl ocks org mbostock 5100636 http bl ocks org mbostock 5100636 我想知道是否有任何方法可以使其响应 以便大小随着浏览器窗口大小的调整而变化 或者使
  • 使用 ng-include 导致未定义

    您好 我对 Angular 相当陌生 我刚刚开始使用它来启动我的第一个应用程序 这是我到目前为止所做的事情 这是我的索引文件 div div
  • AngularJS 中的 401 未经授权的错误处理

    我是 AngularJS 的新手 现在花了 3 天寻找处理 401 状态的方法 我尝试过拦截器 使用 http 使用 resource 但没有任何效果 我的应用程序在同一服务器上调用 JSONP 调用 当错误发生时 它会被错误回调函数捕获
  • 密码排序性能

    我正在尝试完成一项非常常见的任务 我在 Neo4J 数据库中有大量数据集 并且希望通过 RESTful Web 服务以 25 个节点的块形式返回数据 我的模型非常简单 Tenant Hash owns gt Asset Hash Name
  • 如何捕获源自reactor.stop()的Deferred中未处理的错误

    我是扭曲的新手 并且在使用以下脚本时遇到问题 当我运行以下命令时 usr bin env python from twisted internet import defer from twisted web client import ge
  • iTunes 连接截图订单

    我目前正在通过 iTunes connect 提交一个应用程序 我在一些网站上看到 您需要以与您希望的显示方式相反的顺序发布屏幕截图 但其中许多帖子都有点旧了 当我现在上传屏幕截图时 我可以拖放来更改图像顺序 第一个屏幕截图是在 App S
  • 星号表示必填字段

    我想在输入框后面放置一个 符号 我在显示时遇到问题 This problem is due to inputbox css code Here I attached my css html within php code with a sc
  • Yii2 URL Html 格式

    快速提问 我在视图脚本中使用以下代码来生成链接
  • 如何使用 capistrano 回滚到之前部署的版本?

    我尝试使用 cap rollback 但出现以下错误 美元上限回滚 任务 回滚 不存在 我需要做一些额外的设置才能使回滚正常工作吗 刚刚在这里找到了答案http github com leehambley railsless deploy
  • HTML 图像翻转 - 翻转前图像未完全加载?

    我有一个图像 在左上角作为主页链接 我使用 CSS hover 在鼠标悬停时更改图像 问题是 第一次翻转图像时需要一些时间来加载图像 有一个临时空白区域 您会看到图像逐渐加载 大约需要一秒钟 但这很烦人 我该如何解决这个问题以使翻转无缝 有
  • 如何在 C# 中向 ListView 添加列标题

    我有一个没有列的 ListView 控件 一个列表 List
  • 如何在 Android 中使用 ContentResolver 进行不区分大小写的查询?

    我的目标是在 Android Gingerbread 及以上版本上从本机数据库中获取具有特定电子邮件地址的所有行 此查询仅获取大小写也匹配的行 Cursor cursor context getContentResolver query C
  • 第一次不延迟执行setInterval函数

    有一种方法可以配置setIntervaljavascript的方法立即执行该方法 然后用定时器执行 最简单的方法是第一次直接调用该函数 foo setInterval foo delay 然而 有充分的理由避免setInterval 特别是