红宝石如何产生延迟?
我使用了睡眠声明,但它没有给我我想要的东西.
puts "amit"
sleep(10)
puts "scj"
Run Code Online (Sandbox Code Playgroud)
我希望它首先打印amit,然后延迟10秒,然后打印scj.
但在上面的情况下会发生什么,它会暂停10秒然后它将打印amit和scj在一起.我不希望这样.
我希望你得到我想说的话.
我无法重现这一点.从控制台,这完全符合您的期望:
puts "amit"
sleep 10
puts "scj"
Run Code Online (Sandbox Code Playgroud)
(Linux上的Ruby 1.8.6)
你能提供一个类似的简短但完整的例子,它不能做你想做的事情 - 或者更多地解释你的背景吗?
如果您正在编写Web应用程序,那么浏览器可能只会在编写完整个响应后才能看到任何数据 - 这可以解释您所看到的内容.如果是这种情况,您将需要一种不同的方法,允许首先写入初始响应,然后让浏览器再次发出请求.延迟可能在服务器或客户端,取决于没有方案.