Функция asyncio.wait() это еще один способ вызвать множество асинхронных задач.
Она работает в нескольких режимах.
1. Самый простой - ждем завершения всех задач
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(10)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.ALL_COMPLETED
)
for task in done:
try:
print(task.result())
except Exception as e:
print(e)
Очень похоже на gather, но работает не так.
▫️возвращает не результаты, а два сета с объектами Task у которых можно забрать результат через task.result() если они в списке done
▫️не гарантирует порядок результатов так как оба объекта это set
▫️не выбрасывает исключение когда оно появляется, а сохраняет его в Task. Исключение появится когда попробуете забрать резултьтат.
2. Ждем завершения первой задачи, даже если там ошибка.
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(3)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_COMPLETED
)
# в done может быть несколько задач!
for task in done:
try:
print(task.result())
except Exception as e:
print(f"Fail: {e}")
# Оставшиеся задачи в pending, как правило, нужно отменить, иначе они будут продолжать работать
for task in pending:
task.cancel()
В сете done будут таски которые успели завершится, причем как успешно так и нет.
3. До первой ошибки.
Тоже самое, но с аргументом FIRST_EXCEPTION
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_EXCEPTION
)
Функция завершается как только первая задача упадет с ошибкой.
Учтите, что в любом случае done вы можете обранужить несколько задач, как с ошибками так и успешные.
↗️ Полный листинг примеров здесь
#async
🆕WLmouse Ying получили долгожданное обновление!🆕
— Теперь корпус мышки полностью выполнен из магниевого сплава:
🔴Таже форма, размер и характеристики.
🔴Все ощущения от мышки стали на голову выше, эталонная сборка без скрипов и люфтов, максимально ровное дно из за жесткости корпуса, никаких проблем со временем.
🔴Однако, мышка стала весить на 7 грамм больше, чем прошлая, карбоновая версия.
На выбор две версии, на механических и оптических переключателях, а так же огромное количество ярких расцветок.
🎁 WLmouse Ying Magnesium - 13.490₽ - 13.990₽
САЙТ • МЕНЕДЖЕР • #WLMOUSE
WLmouse YING в карбоне — всё. Конец? ❌
— Многими любимая WLmouse YING в её привычном карбоновом исполнении официально снялась с производства. Если вы откладывали покупку этой модели на потом — сейчас тот самый момент, когда нужно решаться. Запасы у ритейлеров не бесконечны!📦
Что дальше❓ Ходят слухи, что YING вернется в новом обличии. Вероятнее всего, нас ждет цельнометаллический корпус без отверстий (как у Huan). Хоть это и пойдет модели на пользу, невероятный внешний вид будет утерян..
🎁Цена 16.990₽- успей забрать, пока она не стала раритетом*
САЙТ • МЕНЕДЖЕР • #WLMOUSE
🎄Мышки и клавиатуры серии Huan от WLmouse в наличии!
— Доступные цвета мышек:
🔴Black
🟢Design Version
🔴Pink
🟢Silver
🔴White
🟢White-Pink
🔴White-Purple
— Доступные цвета клавиатур:
🟢Black
🔴Pink
🟢White
Все предзаказы будут выданы и отправлены завтра 🙏
САЙТ • МЕНЕДЖЕР • #WLMOUSE
🐱Новая модель мышка WLmouse Huan. Цельно металлический корпус без отверстий, доступна в нескольких расцветках, 4 из которых лимитированные.
⚪️ Сенсор PAW3950HS
⚪️Переключатели Omron Optical
⚪️Донгл 8.000hz с экраном и колонкой.
⚪️Вес 48 грамм
— Симметричная форма средних размеров, ориентиром формы стала Viper Mini, отлично подойдет для Когтевого хвата.
👛Цена начинается с 15.490₽ за стандартные расцветки, подробнее на ReShip.pro
САЙТ • МЕНЕДЖЕР • #WLMOUSE
😺Новая клавиатура от WLmouse - HUAN63! Это магнитная клавиатура, с модульным, сменным дизайном.
🟣Переключатели Gateron Starlight Switch
🟣Корпус из алюминия
🟣Формфактор 60%
🟣8K подключение + 256K сканирование
🟣Гаскет структура с большим количеством шумоизоляции
💳Предзаказ уже открыт, цена 27.490₽ на ReShip.pro.
САЙТ • МЕНЕДЖЕР • #WLMOUSE
🔥 Новая клавиатура Ying75 от WLMouse — скоро в наличии..
МАКСИМУМ ТОЧНОСТИ — МИНИМАЛЬНЫЙ ОТКЛИК
✨Что внутри?
— Корпус: Углеродный Карбон
— Переключатели: Hot-Swappable Hall Effect (Nightfall / Shadow)
— Кейкапы: Прозрачные (PC) или белые ⚪️ PBT с гравировкой сбоку
— Частота опроса: до 8000Hz
— Rapid Trigger: точность до 0.005 мм
Также есть вариант с русской 🇷🇺 гравировкой символов!
⚡️YING75 — клавиатура для тех, кто не идёт на компромиссы.
💸 Цена: 23.990 ₽
🔔 В наличии 10го июня
ОФОРМИТЬ ЗАКАЗ • КАТАЛОГ • #WLMOUSE