Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
В чем различие между Observable и Promise? Где применяется каждый из этих паттернов?
Promise — это объект, который работает с одним значением или ошибкой, и его результат может быть получен только один раз. Он идеален для однократных асинхронных операций, таких как запросы к API. Observable позволяет работать с множественными значениями и управлять подписками на поток данных, что делает его полезным для событий, потоков данных или длительных операций. Основное различие — в многократности значений и возможностях управления потоком.
В чём разница между Observer и Observable?
Observer — это объект, который получает уведомления об изменениях. Observable — это объект, который хранит состояние и рассылает уведомления. Observer подписывается на события Observable. Observable не знает деталей реализации Observer. Это разделение ролей делает систему гибкой.
Как Observer подписывается на события Observable?
Observer подписывается на события, передавая себя Observable или регистрируя обработчик. Это может быть добавление в список подписчиков, установка замыкания или регистрация в NotificationCenter. После подписки Observer начинает получать уведомления при изменениях. Важно корректно управлять временем жизни подписки. Неправильная подписка может привести к утечкам памяти.
Как Observable хранит и уведомляет подписчиков?
Observable хранит список подписчиков и уведомляет их при изменении состояния. Обычно подписчики хранятся как слабые ссылки, чтобы избежать retain cycle. При событии Observable проходит по списку и вызывает методы или замыкания. Также может использоваться фильтрация или удаление неактуальных подписчиков. Это позволяет безопасно рассылать события.
Что такое горячие и холодные observable?
Холодные observable начинают испускать значения только после подписки. Горячие observable испускают значения независимо от наличия подписчиков. Каждый подписчик холодного observable получает собственную последовательность данных. Горячие observable разделяют один поток данных между всеми подписчиками.
Рейтинг:
3
Сложность:
8
Рейтинг:
3
Сложность:
4
Рейтинг:
4
Сложность:
4
Рейтинг:
4
Сложность:
5
Рейтинг:
5
Сложность:
6