使用gen.task与龙卷风一个简单的功能(using gen.task with Tornado

2019-06-26 13:25发布

只是想用龙卷风的异步功能 - 我想从我的处理程序调用一个方法,但它不断告诉我,它“得到了一个意想不到的关键字参数‘回调’”。

class MyHandler(tornado.web.RequestHandler):

    @asynchronous
    @gen.engine
    def get(self):
        response = yield gen.Task(self.dosomething, 'argument')
        self.write(response)
        self.finish()

    def dosomething(self, myargument):
        pass

Answer 1:

非阻塞函数需要回调,在它传递的结果。

class MyHandler(tornado.web.RequestHandler):

    @asynchronous
    @gen.engine
    def get(self):
        response = yield gen.Task(self.dosomething, 'argument')
        self.write(response)
        self.finish()

    def dosomething(self, myargument, callback):
        return callback(myargument)


文章来源: using gen.task with Tornado for a simple function