pyList

一个tornado+coroutine+yield的例子

一个简单的tornado+coroutine+yield的例子

class MainHandler(tornado.web.RequestHandler):
    cond = None

    @tornado.gen.coroutine
    def test(self):
        print('a')
        a = 1
        self.cond = tornado.locks.Condition()
        yield self.cond.wait(timeout=datetime.timedelta(seconds=10))
        a = 2
        print('b')
        return a, 2

    @tornado.gen.coroutine
    def get(self):
        a, b = yield self.test()
        print(a, b)
        self.render("index.html")

这几个需要配合使用,使用得不好就可能会出现下面的错误:

AssertionError: yield from wasn't used with future
tornado.gen.BadYieldError: yielded unknown object
ValueError: not enough values to unpack (expected 2, got 0)
本文标签: tornado coroutine yield
本文网址: https://pylist.com/t/1546437350 (转载注明出处)
如果你有任何建议或疑问可以在下面 留言
发表第一条评论!
验证码图片
相关推荐