我想在我的 Cyclone 请求处理程序中使用这样的简单装饰器来装饰 post/get/... 方法:
def json_errors(fun):
def x(self, *args, **kwargs):
try:
rv = fun(self, *args, **kwargs)
return rv
except cyclone.web.HTTPError, e:
self.set_status(e.status_code)
self.set_header('Content-Type', 'application/json')
self.write(e.log_message)
self.finish()
return x
但是,因为我的 post/get/... 方法已经用 defer.inlineCallbacks 装饰了,所以无论我将装饰器放在 @defer.inlineCallbacks 之前还是之后,我都会遇到各种与延迟相关的错误。
如何添加我的装饰器?