7
我有2個功能:第一個,def_a
,是一個異步功能,第二個是def_b
這是一個普通的函數和調用的def_a
結果作爲與add_done_callback
功能的回調。蟒ASYNCIO add_done_callback與異步DEF
我的代碼如下所示:
import asyncio
def def_b(result):
next_number = result.result()
# some work on the next_number
print(next_number + 1)
async def def_a(number):
await some_async_work(number)
return number + 1
loop = asyncio.get_event_loop()
task = asyncio.ensure_future(def_a(1))
task.add_done_callback(def_b)
response = loop.run_until_complete(task)
loop.close()
而且它的工作完美。
當第二個函數def_b
變得異步時,問題就開始了。現在,它看起來像這樣:
async def def_b(result):
next_number = result.result()
# some asynchronous work on the next_number
print(next_number + 1)
但現在我不能把它提供給add_done_callback
功能,因爲它不是一個普通的功能。
我的問題是 - 如果def_b
是異步的,是否有可能以及如何向add_done_callback
函數提供def_b
函數?
感謝您分享,出於好奇,使用什麼是確保將來使用等待my_coro在my_callback – laycat
'sure_future(coro)'只是隊列'coro()'用於以後執行,並不會立即啓動'coro ()'。 – Udi