等价于ruby的setInterval()
在JavaScript中,您可以执行以下操作:等价于ruby的setInterval(),ruby,Ruby,在JavaScript中,您可以执行以下操作: setInterval(func,delay); 我在谷歌上找不到任何我真正想要的东西。 有没有ruby的等价物?提前谢谢 你可以这样做: Thread.new do loop do sleep delay # your code here end end 或者您可以定义一个函数: # @return [Thread] return loop thread reference def set_interval(del
setInterval(func,delay);
我在谷歌上找不到任何我真正想要的东西。
有没有ruby的等价物?提前谢谢 你可以这样做:
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\u interval
时,只需调用以下任何方法:exit
、stop
或kill
您可以在控制台中测试它(irb
或pry
):
我使用:
有人问了同样的问题。这个gem可能对您的调用很有帮助,但是如果您需要与JS
setInterval相同的固定时间延迟,那么Rufus::Scheduler\interval
可能更合适
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
scheduler = Rufus::Scheduler.new
scheduler.every '5m' do
# Some Fancy Code Logic That Runs Every 5 Minutes
end