@MonsterAndrew

Как работает асинхронность в Tornado?

Есть такой код:
import tornado.web
from tornado.ioloop import IOLoop
from tornado import gen
class MainHandler(tornado.web.RequestHandler):
    async def get(self):
        for i in range(5):
            if i == 4:
                print(i)
            await gen.sleep(1)
        print("Lol")
application = tornado.web.Application([
    (r"/test", MainHandler),
    ])
if __name__ == "__main__":
    application.listen(9999)
    IOLoop.instance().start()

Я думал, что при запросе он выведет сначала "Lol", потом досчитает до 4 и выведет 4, так как вроде async есть await есть. Каково было мое удивление когда он сначала досчитал до 4, вывел 4 и только потом вывел "Lol". Пробовал и варианты без async/await но с gen.coroutine. Результат все тот же:( Я новичок в Tornado, поэтому не судите строго.
  • Вопрос задан
  • 916 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы