協程等待多個非同步呼叫(list or dict)
阿新 • • 發佈:2018-11-14
from tornado import gen from tornado.httpclient import AsyncHTTPClient @gen.coroutine def coroutine_visit_list(): http_client = AsyncHTTPClient() list_response = yield [ http_client.fetch('www.baidu.com'), http_client.fetch('www.sina.com'), http_client.fetch('www.163.com') ] for response in list_response: print(response) @gen.coroutine def coroutine_visit_dict(): http_client = AsyncHTTPClient() dict_response = yield { 'baidu':http_client.fetch('www.baidu.com'), 'sina':http_client.fetch('www.sina.com'), '163':http_client.fetch('www.163.com')} print(dict_response['sina'])
tornado允許一個yield等待多個非同步呼叫,只需用列表或者字典方式傳遞即可,傳遞方式是什麼,則tornado返回非同步呼叫的結果也是相同的方式!