Почему я получаю результаты этого ajax вызова мгновенно, хотя у меня асинхронный код?
Я изучаю асинхронное программирование на Python и не могу понять, почему я получаю мгновенный ответ, когда вызываю маршрут, соответствующий этому вызову (я вызываю его как ajax вызов, платформа - Django, этот файл - views.py файл в приложении Django)?
(Когда я нажимаю на кнопку, ajax вызывает метод buy, он имитирует покупку акций в песочнице и возвращает результат, я хочу, чтобы он подождал 5 секунд и затем вернул результат, вместо этого я получаю результаты вызова ajax почти сразу)
async def buy(request):
figi = request.GET.get('figi', 'missing')
data = {
'result': 'success',
'figi': figi
}
SANDBOX_TOKEN = 'some_token'
async def buy_stock():
try:
async with TinkoffInvestmentsRESTClient(
token=SANDBOX_TOKEN) as rest:
order = await rest.orders.create_market_order(
figi="BBG000BTR593",
lots=1,
operation=OperationType.BUY,
)
await asyncio.sleep(5)
result = await rest.orders.create_limit_order(
figi="BBG000BTR593",
lots=1,
operation=OperationType.SELL,
price=50.3,
)
return 'result'
except TinkoffInvestmentsError as e:
print(e)
result = await buy_stock()
return JsonResponse({
'result': 'success',
'message': result
}, safe=False)
Другими словами, вызов seems не ждет завершения работы async-методов и сразу отправляет JsonResponse