DevNotes Live
6 subscribers
84.2K photos
12K videos
195 files
35.4K links
Автоматический агрегатор IT ресурсов в Telegram (@devnotes_robot)
Информация: https://t.me/devnotes_live/121
Download Telegram
Forwarded from ai.dot(ufna, dev)
Ах да, основной домен vk (и кстати, кучи сервисов Яндекса) был на com.

Опять же, до сегодня.
Неявное зависание Promise.all при отмене AsyncIterator через AbortController

Вы используете for await...of с асинхронным генератором и AbortController для отмены. Кажется, всё чисто, но Promise.all зависает намертво. Проблема в том, что вызов abort() вызывает return() генератора, но если внутри остался незавершённый промис (таймер, подписка, поток), он просто висит, и Promise.all никогда не завершится.

Как возникает утечка
Когда abort() срабатывает внутри for await...of, итератор завершается. Но если в генераторе есть запущенный, но не завершённый setInterval, await на потоке данных или подписка на событие, этот промис остаётся висеть в памяти. Например, генератор каждую секунду отправляет данные, а при abort обработчик завершает итерацию, но не очищает таймер. Promise.all ждёт этот таймер вечно.

Диагностика на практике
Добавьте в конец return() генератора console.log('return called'). Если return вызывается, а Promise.all не завершается — ищите, какой ресурс утекает. Используйте обёртку с таймаутом: Promise.race([Promise.all(...), AbortSignal.timeout(5000)]). В продакшне это спасёт от вечного ожидания, но не решит корень проблемы.

Совет по исправлению
Всегда оборачивайте тело асинхронного генератора в try/finally. В finally явно очищайте все ресурсы: удаляйте слушатели, отменяйте таймеры, разрешайте ожидающие промисы. Например, если внутри генератора есть setInterval:
async function* gen(signal) {
const timer = setInterval(() => {}, 1000);
try {
while (!signal.aborted) {
await new Promise(r => setTimeout(r, 100));
yield data;
}
} finally {
clearInterval(timer);
}
}


Вывод: Каждый yield и await в асинхронном генераторе должен быть гарантированно завершён до конца итерации, иначе return() не прервёт внутренние промисы, что приведёт к невосстанавливаемому зависанию.
Forwarded from Shock Design
ДИгадка №38

Дизайнер и изменения логотипа: Коля в процессе работы над баннером столкнулся с проблемой увеличения логотипа. Что же произошло с формой логотипа — прочитайте в статье

Читать на дизайнерс | #урок
ДИгадка №38

Дизайнер и изменения логотипа: Коля в процессе работы над баннером столкнулся с проблемой увеличения логотипа. Что же произошло с формой логотипа — прочитайте в статье

Читать на дизайнерс | #урок
Что происходит вокруг TT Norms®: объясняем по порядку

Спор об использовании шрифта TT Norms® на сайте издательского дома. Какие правовые вопросы возникли и почему шрифт важен не только как дизайн, но и как результат творческого процесса

Читать на дизайнерс | #статья
Forwarded from Новые шрифты
Что происходит вокруг TT Norms®: объясняем по порядку

Спор об использовании шрифта TT Norms® на сайте издательского дома. Какие правовые вопросы возникли и почему шрифт важен не только как дизайн, но и как результат творческого процесса

Читать на дизайнерс | #статья
Forwarded from ai.dot(ufna, dev)
Именно поэтому мы и ждем расцвета робототехники. Скоро!
Forwarded from Shock Design
Обложки журнала New Yorker с собаками
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Шрифт Mavoble

💾 Скачать и использовать
https://disk.yandex.ru/d/JV5BDpsVZ5e7DQ

🔎 Посмотреть описание
https://fontesk.com/mavoble-font/

#font #free #cyrillic #latin
Forwarded from Новые шрифты
Шрифт "Phudu" by Duong Tran

Стильный бесплатный гротеск, который вы можете бесплатно использовать в личных и коммерческих проектах. Поддерживаются много языков, но не кириллица. В архиве 5 начертаний.

📂Скачать шрифт📂

#free #latin
Forwarded from UI_UX inspiration
Мобильное приложение магазина мебели

Категория: #магазин
Язык: #en

https://.com/shots/26173707-Furnure-Store-Mobile

Чат UI/UX
Forwarded from UI_UX inspiration
Мобильное приложение для управления финансами

Категория: #финансы
Язык: #en

https://.com/shots/25803962-Finance-Mobile-App

Чат UI/UX