170 похожих чатов

Можно ли как то запускать асинхронную функцию в синхронной функции?

37 ответов

45 просмотров

как правило не стоит

Mazga- Автор вопроса
Tishka17
как правило не стоит

Мне приходится делать так await (Foo.boo == boo) Потому что в функции есть асинхронная функция можно ли как то избавиться от await?

Mazga- Автор вопроса
Tishka17
треш какой-то

:( А как по другому сделать?

Mazga
:( А как по другому сделать?

сделать что? я не понял откуда был выдран этот кусок и почему там асинк

Mazga
url: https://pastebin.com/DuqaSwp9

зачем ты сделал __eq__ асинхронным?

Mazga- Автор вопроса
Tishka17
зачем ты сделал __eq__ асинхронным?

Потому что использую асинхронную функцию тест в которой есть httpx.get

Mazga
Потому что использую асинхронную функцию тест в ко...

Что за херня? Зачем ты в __eq__ делаешь запрос?

Mazga- Автор вопроса

Некрасиво же

Mazga- Автор вопроса
👁 Shuhari
Некрасиво же

Foo.id == 123 по моему лучше чем Foo.search(id=123)

Mazga
Foo.id == 123 по моему лучше чем Foo.search(id=123...

зато понятно, что присходит

Mazga
Foo.id == 123 по моему лучше чем Foo.search(id=123...

Это вообще семантически не одно и то же.

Mazga
Foo.id == 123 по моему лучше чем Foo.search(id=123...

Если под капотом при этом дёргается апи — хуже. Ты сделал для пользователя класса вид, что это дешёвая операция, а на деле — нет. И смысл нифига не понятен.

а че нет? человек хочет свой QL.

Mazga
Foo.id == 123 по моему лучше чем Foo.search(id=123...

не, хуже в разы, мне из твоего кода нужно понимать, что при сравнении идет запрос в сеть, эта конструкция просто дизориентирует меня

asyncio.run(afunc())

Mazga
Foo.id == 123 по моему лучше чем Foo.search(id=123...

а лучше разделить модель данных и штуку которая делает запросы client.search(Foo.id==123)

std::mpa 🇺🇦
не надо так

Ладно asyncio.get_event_loop().run_until_complete(func())

std::mpa 🇺🇦
не надо так

Ну почему же... в зависимости от задачи это как раз таки может требоваться.

evle
Кого?

свой квери-движок

Зинатулл Черимолах
Ладно asyncio.get_event_loop().run_until_complete(...

За asyncio.get_event_loop() принято в приличном обществе водить ссаной тряпкой по лицу.

Alex
За asyncio.get_event_loop() принято в приличном об...

Ну наверное у него уже есть луп и не надо новый создавать

std::mpa 🇺🇦
что за общество? O.o

Общество тех, кто читал документацию

std::mpa 🇺🇦
что за общество? O.o

Токсикоманов на работе

std::mpa 🇺🇦
свой квери-движок

Блестяще. Он на каждую операцию будет в сеть лезть или всё-таки сперва запрос целиком сформирует, а потом отдельным методом явно запустит поиск?

Alex
Ну почему же... в зависимости от задачи это как ра...

да, но контекст: async def main(): print(await (Foo.id == 1))

Зинатулл Черимолах
Ну наверное у него уже есть луп и не надо новый со...

1. asyncio.get_event_loop() таки создает новый луп если его нет, но это может сломаться в любой момент 2. run_until_complete не будет работать, если луп уже запущен

Тут дошли до момента, когда попытались __eq__ асинхронным сделать. То есть уже куда-то не туда ушло.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта