Как получить возврат из функций события l oop - PullRequest
0 голосов
/ 12 июля 2020

Я ладья ie на асин c. Итак, моя цель - получить массив ответов от события l oop. Я вообще-то не понимаю, куда в конце концов идет этот return html_text. Подправьте, пожалуйста, мой код или предложите альтернативное решение?

urls = [https://www.google.com, https://www.youtube.com/]

async def r_get(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url, headers=headers) as resp:
            resp.encoding = 'utf-8'
            html_text = await resp.text())
    return html_text


urls = [asyncio.ensure_future(r_get(url)) for url in urls_with_id]

loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(*urls))

1 Ответ

0 голосов
/ 12 июля 2020

run_until_complete возвращает значение, возвращаемое запускаемой сопрограммой. В свою очередь, gather возвращает кортеж возвращаемых значений сопрограмм, которые он ожидает завершения. Когда они используются вместе, run_until_complete(gather(a(), b(), c())) вернет кортеж значений, возвращаемых a(), b() и c() соответственно.

В вашем случае просто выберите результаты, назначив их к переменным:

results = loop.run_until_complete(asyncio.gather(*urls))
# ...use results...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...