В чём разница между Observable и Promise при нескольких подписках/обработчиках: сколько запросов и console.log будет выполнено?

Один созданный Promise обычно представляет одну уже запущенную операцию; несколько then не запускают её заново. У cold Observable каждая подписка обычно создаёт отдельное выполнение.

Короткий ответ

Что ответить на собеседовании

Один созданный Promise обычно представляет одну уже запущенную операцию; несколько then не запускают её заново. У cold Observable каждая подписка обычно создаёт отдельное выполнение.

Подробный разбор

Ответ с пояснениями

Один созданный Promise обычно представляет одну уже запущенную операцию; несколько then не запускают её заново. У cold Observable каждая подписка обычно создаёт отдельное выполнение.

Поэтому два subscribe на обычный холодный HTTP-поток могут дать два запроса, а два then одного Promise — один запрос и два обработчика. Hot/shared Observable ведёт себя иначе. Точное число console.log зависит от того, где он находится: в producer, операторе или обработчике; без кода универсальной цифры нет.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее