SyntaxError: ‘await‘ outside async function
·
在函数中执行await的时候报出以上错误,从字面意思翻译是await不在async 函数当中,是因为我创建的函数前面没有添加async关键字
def result_page(request: Request, username: str = Form(...), password: str = Form(...)):
"""
返回用户注册信息
:param request:
:param username:
:param password:
:return:
"""
add_user = await User().create(username=username, password=password)
# user_infos = await User().all()
# add_user = await User().create(username=username, password=password)
print("user_info", add_user)
print(username, password)
return request.app.state.views.TemplateResponse("reg_result.html",
{"request": request,
"username": username,
"password": password})
# 在以上函数前面加上async,报错就解除了
async def result_page(request: Request, username: str = Form(...), password: str = Form(...)):
"""
返回用户注册信息
:param request:
:param username:
:param password:
:return:
"""
add_user = await User().create(username=username, password=password)
# user_infos = await User().all()
# add_user = await User().create(username=username, password=password)
print("user_info", add_user)
print(username, password)
return request.app.state.views.TemplateResponse("reg_result.html",
{"request": request,
"username": username,
"password": password})
还有另外一个原因是因为 await是要和创建协程时async一起搭配使用的,直接使用await就会找不到他所在的函数的,于是报错在函数外。使用asyncio创建任务队列,进行调用
import asyncio
async def func1():
await asyncio.sleep(10)
print('等待10秒')
async def func2():
await asyncio.sleep(20)
print('等待20秒')
task_list=[func1(),func2()]
loops=asyncio.get_event_loop()
loops.run_until_complete(asyncio.wait(task_list))
更多推荐
所有评论(0)