TGViewer
Node.js Recipes Node.js Recipes @node_recipes · 3.1K subscribers
Post #85 1.38K
Что такое Floating Promise и почему это опасно?
#code_pattern #nodejs_api

TL;DR Используйте no-floating-promises и unhandledRejection

Floating (не отловленный, плавающий) promise как правило указывает на ошибку в коде. Если внутри Floating promise произойдет ошибка, то #nodejs процесс аварийно завершит работу. Для отлавливания таких событий существует unhandledRejection. Пример из документации:
process.on('unhandledRejection', (reason, promise) => {
console.log('Unhandled Rejection at:', promise, 'reason:', reason);
});

Отлавливать Floating promise лучше не в run time, а с помощью линтера. Для этого существуют правила:
➡️ в eslint
➡️ в typescript-eslint
➡️ тут мог бы быть tslint, но его уже нельзя использовать.

В определенных случаях, бизнес логика не требует ожидания завершения промиса. Тогда необходимо использовать комментарий в коде, указывающий линтеру игнорировать ошибку. Вот пример, когда REST не дожидается отправки емейла новому пользователю.

import { usersRepository } from '~/repositories';
import { sendConfirmationEmail } from '~/services/notifications';
import logger from '~/logger';
// pseudo route handler
export async function registerUser(data: newUserDTO): {
const user = await usersRepository.create(data);
// eslint-disable-next-line @typescript-eslint/no-floating-promises
sendConfirmationEmail(user)
.catch(err => logger({err, user},
'Error during sending confirmation email');
return user;
}
More from @node_recipes
  1. Jan 5, 2026По всьому світу проходять Cursor Meetups, де локальні спільноти діляться досвідом використ…
  2. Jan 5, 2026Думки на вихідних: Full Stack Learning Подивився останнє відео Сергія Немчинського про фул…
  3. Dec 31, 2025Залишаються лічені години 2025-го. І будьмо чесними: сам перехід на 2026-й нічого автомати…
  4. Dec 25, 2025Моє відкриття 2025 року, як доповідача, це Napkin.ai. На малюнку приклад того, як Napkin г…
  5. Dec 23, 2025А ось й ChatGPT додав 2025 review feature. Авжеж в мене half coded Nest.js app, як ще :)
  6. Dec 23, 2025Моє технічне відкриття 2025 року — centrifugal.dev У 2025-му я багато працював із реальним…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →