我有两个函数:第一个是def_a
,是一个异步函数,第二个是def_b
,它是一个常规函数,用def_a
的结果作为add_done_callback
函数的回调调用.
我的代码如下所示:
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
?