Вот мой код:
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-адрес, но сейчас я просто хочу, чтобы это:
- Получить URL-адрес
- Активировать обратные вызовы
- Повторение...
Мое понимание этого шаблона заключалось в том, что все в этом цикле срабатывает, затем возвращается, затем продолжается вечно, пока я не сделаю EM.stop
.
Прямо сейчас он извлекает данные URL и, кажется, просто зависает.
Нужно ли мне делать какой-то возврат, чтобы продолжить здесь? Почему он зависает, а не зацикливается снова и снова?
Если я окружу весь вышеприведенный блок кода циклом do... end, он будет работать, как и ожидалось... это правильный способ реализовать это? Полагаю, я сбит с толку, так как думал, что все внутри EM.run
повторяется, когда оно завершается.