我试图在Tornado的RequestHandler中实现get_current_user,但是在等待对数据库的异步调用时我需要调用阻塞.使用@ tornado.web.asynchronous修改调用将不起作用,因为get_current_user方法在异步查询完成之前返回并执行查询回调.
例如:
class MyHandler(BaseHandler):
@tornado.web.asynchronous
@tornado.web.authenticated
def get(self):
self.write('example')
self.finish()
class BaseHandler(tornado.web.RequestHandler):
def get_current_user(self):
def query_cb(self, doc):
return doc or None
database.get(username='test', password='t3st', callback=query_cb)
Run Code Online (Sandbox Code Playgroud)
@ tornado.web.authenticated调用get_current_user,但始终收到"None",因为BaseHandler没有时间响应.有没有办法,使用龙卷风,暂时阻止呼叫,如上面的呼叫?