如何从龙卷风未来目标中获取内容

2021-02-25 20:55:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的被龙卷风的框架和“未来”物体弄糊涂了。 所以我想通过一个http调用来获得异步响应 代码是:

class TestAsyncHttp(object):
    def __init__(self):
        self._http_client = httpclient.AsyncHTTPClient()

    @gen.coroutine
    def get_response(self, params)
        response = yield self._request(
            method='POST',
            endpoint='test'
            data=params
        )
        raise gen.Return(response)

    @gen.coroutine
    def _request(self, method, endpoint, data):
        url = self._make_url(endpoint) #this includes the port..
        headers = self._load_headers()
        request = httpclient.HTTPRequest(
            url,
            method=method,
            headers=header,
            body=json.dump(data)
        )
        response = yield self._http_client.fetch(request)
        raise gen.Return(response)

问题是,在我完成这一个之后,我如何测试它?在

我试着写一张纸条,上面写着…:

^{pr2}$

但是我是python“脚本之路” 没有任何输出。 如果我刚进入“python”环境,我得到“future”对象没有getitem …我如何从未来获得内容。。?在

谢谢!在

1条回答
网友
1楼 ·

使用^{}以同步方式运行异步协同程序:

def get_response():
    x = TestAsyncHttp()
    ret = IOLoop.current().run_sync(lambda: x.get_response(request_json))
    body = ret.body
    print body['value']

这里只需要lambda来传递request_json参数。如果get_response没有参数,则可以改为:

^{pr2}$

相关问题