defer.succeed 的 asyncio 等价物是什么?
What is the asyncio equivalent of defer.succeed?
正如标题中提到的,Twisted 的 defer.succeed 的 asyncio 等价物是什么?或者,如何从普通 Python 值创建协程 object?
请注意,这与 不同。我总是可以做类似下面的事情,但我想知道是否有更好的方法。
value_to_convert_to_coroutine_object = 5
async def foo(bar):
return await asyncio.coroutine(lambda: value_to_convert_to_coroutine_object)()
defer.succeed()
没什么特别的,据我所知,没有一个 asyncio 函数可以复制它。
def succeed(result):
f = Future()
f.set_result(result)
f.done()
return f
我记得在 asyncio IRC 上,作者不想制作用户可以简单地自己编写的功能。这可能就是为什么这样的功能不存在的原因。
至于你问题的第二部分,你的解决方案似乎很简单。我已经为单元测试做了类似的事情。
正如标题中提到的,Twisted 的 defer.succeed 的 asyncio 等价物是什么?或者,如何从普通 Python 值创建协程 object?
请注意,这与
value_to_convert_to_coroutine_object = 5
async def foo(bar):
return await asyncio.coroutine(lambda: value_to_convert_to_coroutine_object)()
defer.succeed()
没什么特别的,据我所知,没有一个 asyncio 函数可以复制它。
def succeed(result):
f = Future()
f.set_result(result)
f.done()
return f
我记得在 asyncio IRC 上,作者不想制作用户可以简单地自己编写的功能。这可能就是为什么这样的功能不存在的原因。
至于你问题的第二部分,你的解决方案似乎很简单。我已经为单元测试做了类似的事情。