我需要做的就是编写一个简单的异步函数来返回一些东西。类似于的东西
async def diss(lis):
x = []
for i in lis:
x.append(i + 1) #the operation is arbitrary, but the input and output of a list is the desired result
return x
lis = [1, 2, 3, 4]
res = await diss(lis)
但是,这给了我在等待diss(lis(的语法错误
我在网上找到的只是教程,其中某些内容打印在异步函数中,但是当尝试返回某些内容时,我总是收到协程或未来对象。
我的目标是基本上让循环异步运行,以提高性能,然后返回一些东西
你来了:
import asyncio
async def diss(lis):
x = []
for i in lis:
x.append(i + 1)
return x
async def main():
lis = [1, 2, 3, 4]
res = await diss(lis)
return res
loop = asyncio.get_event_loop()
res = loop.run_until_complete(main())
print(res)
确保您首先了解为什么以及何时使用 asyncio。例如,没有必要使代码高于异步。
通常,只有当您有多个 I/O 操作时,才可能需要asyncio
,这些操作可以与asyncio.gather()
并行化。
async def diss(lis):
x = []
for i in lis:
x.append(i + 1)
return x
async def dat():
res = await diss(lis)
return res
loop = asyncio.get_event_loop()
done, _ = loop.run_until_complete(asyncio.wait([dat()]))
for fut in done:
a = fut.result()
是我为解决 a 是预期结果的问题所做的。这有什么问题吗?