首页 > 解决方案 > Ruby 循环直到设定时间,如果条件返回 false,则引发异常

问题描述

我试图循环到 10 秒,如果在 10 秒内返回 true,则中断循环。如果 10 秒后返回 false,则引发异常。

1.upto(2) do
  loop do
    if current_status == db_status
      break
    else !current_status == db_status
      raise 'status is incorrect'
    end
  end
end

标签: ruby

解决方案


我不太了解这1.upto(2)部分,但根据您的描述,我猜这就是您要完成的任务,对吧?

start = Time.now
while (Time.now - start) < 10 do
  break if current_status == db_status
end
raise 'status is incorrect' unless current_status == db_status

推荐阅读