使用 gen.task 和 Tornado 来实现一个简单的功能 [英] using gen.task with Tornado for a simple function

查看:48
本文介绍了使用 gen.task 和 Tornado 来实现一个简单的功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

只是尝试使用 Tornado 的异步函数 - 我想从我的处理程序中调用一个方法,但它一直告诉我它有一个意外的关键字参数‘回调’".

Just trying to use the async functions of Tornado - I want to invoke a method from my handler but it keeps telling me that it "got an unexpected keyword argument 'callback'".

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

推荐答案

非阻塞函数需要回调,在那里传递结果.

Non-blocking function requires callback, where it pass result.

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)

这篇关于使用 gen.task 和 Tornado 来实现一个简单的功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆