setInterval() 相当于 ruby

2024-06-24

在 JavaScript 中你可以这样做:

setInterval(func,delay); 

我似乎无法在谷歌上找到任何我真正想要的东西。 红宝石有等效的吗?提前致谢。


你可以做类似的事情:

Thread.new do
  loop do 
    sleep delay
    # your code here
  end
end

或者你可以定义一个函数:

# @return [Thread] return loop thread reference
def set_interval(delay)
  Thread.new do
    loop do
      sleep delay
      yield # call passed block
    end
  end
end

当你想停止时set_interval,您只需调用以下任一方法:exit, stop or kill.

您可以在控制台中测试它(irb or pry):

t1 = Time.now; t = set_interval(2.5) {puts Time.now - t1}
> 2.500325
> 5.000641
> 7.500924
...
t.kill # stop the set_interval function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setInterval() 相当于 ruby 的相关文章

随机推荐

  • 如何链接回 SSRS 中的父报告

    我有一些带有钻取功能的报告 现在被要求向报告添加面包屑样式导航 以便用户可以再次访问父报告 而无需使用小小的 后退 按钮 我想知道是否有一种简单的方法可以做到这一点 目前我在互联网上找不到任何东西 我现在的解决方案是将父报告的参数传递给其子
  • 序列点模糊、未定义的行为?

    今天我遇到了一些表现出不同行为的代码 clang 3 7 git g 4 9 2 和 Visual Studio 2013 经过一些缩减 我想出了这个片段 突出了这个问题 include
  • “一切都是中间件”

    我正在学习 Koa JS 来构建小型 Web 应用程序的服务器端部分 在观看 YouTube 教程和阅读指南时 我看到这样一句话 一切都是中间件 in Koa 我读过关于中间件的维基百科文章 并用谷歌搜索了这个术语 我对什么是中间件有一个粗
  • 防止Matlab舍入输出?

    我运行一个简单的脚本来估计函数的根 一切都很好 算法的每次迭代都会打印出当前的 x 和 f x 但是当脚本完成并将 x 的最终估计设置为函数的输出时 该值将被返回并四舍五入到小数点后 3 位 while k lt maxit k k 1 d
  • 电子邮件表单超过 20 个值

    我有一个包含 20 多个输入字段的表单 PHPmail函数无法工作 因为它只能接受 5 个参数 如何将这些值发送到我的电子邮件地址 to email protected cdn cgi l email protection subject
  • 带有委托构造函数的构造函数初始化列表执行顺序

    我有一个棘手的 C 问题 当您有一个带有委托构造函数的构造函数初始化列表时 列表执行顺序是什么 这里存在两个相互冲突的标准规则 1 构造函数初始化列表不是按列表顺序执行 而是按项目的声明顺序执行 2 构造函数初始化列表中的委托构造函数总是在
  • 在 WCF customBinding 中接受 UsernameToken 和 BinarySecurityToken

    我正在使用 customBinding 端点构建 WCF Web 服务 但在接受另一方发送给我的 WS Security 标头时遇到困难 我们都遵循英国国家卫生服务局制定的规范 因此我无法修改这些要求 基本结构
  • Google 地图 v3 信息窗口太宽

    在 Google 地图 v3 中 我似乎无法使 infoWindow 的宽度小于 200px 这是我正在使用的代码 var latlng new google maps LatLng 34 397 150 644 var myOptions
  • Camunda:如何对可以取消的任务进行建模?

    我想建模一个可以通过接收消息启动的流程 这将通过 REST 调用完成 该过程将导致分配给用户的任务 用户将提供一些额外的信息 然后该过程将终止 但是 我还想对收到第一个信息后收到附加信息的情况进行建模 通过 REST 收到此额外信息应终止该
  • XSD 序列显示为不明确

    我有一个 XSD 它是从 RELAX NG 模式转换而来的 其中有一些我正在尝试修复的错误 我遇到的最大问题如下
  • Qt - 如何在保留选中状态的同时禁用 QCheckBox?

    我有一个带有两个复选框的对话框 我们称它们为 A 和 B 当未选中 A 时 B 应该能够根据用户的需要进行切换 当 A 被选中时 B 不应该能够被切换 现在 我的对话框构造函数中有以下内容 connect ui gt A SIGNAL to
  • 如何在 Centos 6.5 上安装 MonetDB?

    我想在 Centos 6 5 上安装 MonetDB MonetDB 网站介绍了如何安装 Debian Ubuntu Fedora 发行版 我有一台 Centos 6 5 上的服务器 我不完全确定应该与哪个 Fedora 发行版进行比较 显
  • CMake 找不到 boost

    Windows 7 64 位 CMake 2 8 10 Steps 下载加速 http sourceforge net projects boost files boost 1 51 0 http sourceforge net proje
  • 如何处理多个相同的 MIDI USB 设备

    我的 C 应用程序必须使用多个相同的 USB MIDI 接口 这些接口均来自同一制造商 在设备管理器中 所有设备均具有相同的驱动程序名称 CLSID 仅 PNPDeviceID 不同 当我列出所有 MIDI 输入 输出 使用 MIDI do
  • 如何跟踪通过elastic4s客户端发送到Elasticsearch的json请求?

    假设我使用这样的代码 ElasticClient client client execute search in places gt cities query paris start 5 limit 10 如何查看发送到 Elasticse
  • 当 Flex 项目溢出 Flex 父项时,如何隐藏它?

    假设我有一个弹性盒容器 其中内容可能会溢出父容器 我想要的是 如果任何物品比容器大任何数量 它就会被隐藏 如果我设置overflow hidden它只会隐藏该项目的溢出部分 而不是整个项目 考虑以下
  • 简单注入器打开通用装饰器

    我正在尝试利用简单注入器中的一些不错的功能 我目前在装饰器方面遇到问题 当我期望它们时它们也没有受到攻击 我这样注册它们 container RegisterManyForOpenGeneric typeof ICommandHandler
  • Stripe - PHP 错误 - Stripe 不再支持使用 TLS 1.0 发出的 API 请求

    是否可以在没有 HTTPS 页面的情况下运行条带测试 我似乎在我的本地主机上收到以下错误 有办法纠正吗 提交付款信息后会发生这种情况 致命错误 未捕获异常 Stripe Error Authentication 消息 Stripe 不再支持
  • 如何在 Python 中以列表形式返回字典键?

    使用Python 2 7 我可以获得字典keys values or items as a list gt gt gt newdict 1 0 2 0 3 0 gt gt gt newdict keys 1 2 3 使用 Python gt
  • setInterval() 相当于 ruby

    在 JavaScript 中你可以这样做 setInterval func delay 我似乎无法在谷歌上找到任何我真正想要的东西 红宝石有等效的吗 提前致谢 你可以做类似的事情 Thread new do loop do sleep de