Telethon ส่งจดหมายอยู่ในรายชื่ออยู่ใน asynchronous วกเรา

0

คำถาม

ขอโทษสำหรับพลายภาษาอังกฤษ...

ดังนั้นแท้จริงฉันมีรายชื่อที่บรรจุจดหมายและพวกเขา destinies:

messages = [(id_1, msg_1), (id_2, msg_2), (id_3, msg_3),]

สิ่งที่ฉันต้องการคือต้องการใช้: async for msg in messages อย่างไรก็ตามรายชื่อของฉัน,เห็นได้ชัดว่าไม่ใช่ asynchronously iterable(ฉันใช้ sqlite3)ได้ยังไงฉันแปลงมันจะเป็น asynchronously iterable รายชื่อ?

1

คำตอบที่ดีที่สุด

0

คุณไม่ต้องการ"asynchronously iterable รายชื่อ". คุณสามารถแค่ iterate ปกติ:

for (id, msg) in messages:
    # do things...

ถ้าคุณ จริงๆ ต้องการ"async iterable รายการ"คุณสามารถสรุปมันเหมือนดังนั้นอย่างไรก็ตามข้อนี้อาจจะมากที่เปล่าประโยชน์เลย(และมันก็ยังต้องการล่าสุดเป็นภาษาไพธอนเวอร์ชั่น):

async def make_async_iter(lst):
    for item in lst:
        yield item

...

async for item in make_async_list(messages):
    # use item...
2021-11-23 18:48:47

1-ขอบคุณ! 2-ฉันคือการใช้: @client.on(events.NewMessage) ดังนั้นฉันสามารถส่งและรับจดหมายในเวลาเดียวกันแต่ฉันกำลังพยายามทำให้พวกเขาไม่ใช่บล็อคกันและกันแล้วเรื่องทั้งหมดไม่หยุดทำงานอยู่ 3-ฉันคิดว่าฉันจะทำให้ดีกว่าดูตัวอย่าง.
Joao Pedro Lourenco Affonso

โดยปริยายใหม่ asyncio งานเกิดและสร้างสำหรับแต่ละปรับปรุงดังนั้นพวกเขาไม่จะไม่บล็อคกันและกัน ปัญหาเดียวเกิดขึ้นหากคุณใช้การปิดกั้นวิธีการของ(เหมือน time.sleep แทนที่จะเป็น asyncio.sleep).
Lonami

อ้า,ขอบคุณมากครับ! ฉันจบลงแก้ไขปัญหาอย่างที่คุณแนะนำก่อนหน้านี้แต่เรื่องนี้ยัง usefull!
Joao Pedro Lourenco Affonso

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................