这是我的代码:
EventMachine.run {
conn = EM::Protocols::HttpClient2.connect request.host, 80
req = conn.get(request.query)
req.callback { |response|
p(response.status)
p(response.headers)
p(response.content)
}
}
回调触发,也就是说,我得到状态等的字符串输出。
但我想要它做的是触发回调,然后重复。我计划实现更多逻辑,例如每次调整 URL,但现在,我只希望它:
- 检索网址
- 触发回调
- 重复...
我对这种模式的理解是,该循环中的所有内容都会触发,然后返回,然后一直持续下去,直到我执行EM.stop
.
现在,它检索 URL 数据,但似乎挂起。
我需要做某种返回才能继续在这里吗?为什么它会挂起,而不是一遍又一遍地循环?
如果我用循环围绕整个上述代码块 do ... end 它按预期工作..这是实现这个的正确方法吗?我想我很困惑,因为我认为其中的所有内容在EM.run
完成时都会重复。