0

我试图了解如何在另一个函数中使用异步函数:

每当我的代码发生任何事情时,我都会尝试通过 Telegram 发送消息。

电报记录器:

from telethon import TelegramClient, sync
import asyncio

async def msgtelegram(entity, msg,api_id=xxx, api_hash='xx'):
    
    client = TelegramClient('Session', api_id, api_hash)
    await client.start()
    
    if not await client.is_user_authorized(): 
        await client.sign_in('xxx')
   
    await client.send_message(entity, msg)


    await client.disconnect()

def func():
    try:
        print('hello!')
    except:
        await msgtelegram(entity, msg)

在函数之外调用 await msgtelegram() 似乎可以正常工作。我错过了什么还是我使用异步错误?

谢谢!

4

1 回答 1

0

您可以使用其中一个asyncio.run()loop.run_until_complete()多个作为您的示例

from telethon import TelegramClient, sync
import asyncio

async def msgtelegram(entity, msg,api_id=xxx, api_hash='xx'):
    
    client = TelegramClient('Session', api_id, api_hash)
    await client.start()
    
    if not await client.is_user_authorized(): 
        await client.sign_in('xxx')
   
    await client.send_message(entity, msg)


    await client.disconnect()

def func():
    try:
        print('hello!')
    except:
        asyncio.run(msgtelegram(entity, msg))
于 2021-03-03T18:09:16.910 回答