1
Ich habe eine Aufgabe machen die Kommunikation zwischen Coroutinen mit Hilfe asyncio und python3. Bitte sagen Sie mir, wie es geht, wenn man Koroutine, in während tru Zyklus, Rückgabewert in unterschiedlichen Intervallen, und die anderen Koroutinen empfängt diese Datenasyncio get Ergebnis von coroutine
import asyncio
@asyncio.coroutine
def write(future):
i=0
while True:
yield from asyncio.sleep(1)
future.set_result('data: '.format(i))
i+=1
def got_result(future):
print(future.result())
loop = asyncio.get_event_loop()
future = asyncio.Future()
asyncio.ensure_future(write(future))
future.add_done_callback(got_result)
try:
loop.run_forever()
finally:
loop.close()
Verwenden Sie 'asyncio.Queue' –
Vielen Dank für Ihre Hilfe. aber wenn ich Queue verwenden werde, wie kann ich es auf dem Ereignis lesen, nicht ständig die Warteschlange überprüfen. Es muss nach dem Prinzip der Methode "asyncio.Future(). add_done_callback (func)" mit der Warteschlange –
funktionieren Endbenutzer-Code sollte nie '.add_done_callback' aufrufen - es ist zu niedrig. Tun Sie einfach 'while True: Warten Sie auf queue.get()'. –