11

Tornado の非同期関数を使用しようとしています - ハンドラーからメソッドを呼び出したいのですが、「予期しないキーワード引数 '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
4

1 に答える 1

21

ノンブロッキング関数には、結果を渡すコールバックが必要です。

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)
于 2012-07-27T07:07:55.007 に答える