我正在尝试了解如何在另一个函数中使用异步函数:
每当我的代码发生某些事情时,我都会尝试通过 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() 似乎可以正常工作。 是我遗漏了什么还是我使用了错误的异步?
谢谢!
答案 0 :(得分: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))