В RxSwift есть несколько основных типов Subject, которые комбинируют свойства Observable и Observer:
Можешь ли ты перечислить и кратко описать основные типы Subject в RxSwift?
В RxSwift есть несколько основных типов Subject, которые комбинируют свойства Observable и Observer:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В RxSwift есть несколько основных типов Subject, которые комбинируют свойства Observable и Observer:
- PublishSubject — не хранит предыдущие значения. Подписчики получают только события, которые произошли после подписки.
- BehaviorSubject — хранит последнее значение и сразу отправляет его новым подписчикам.
- ReplaySubject — хранит заданное количество последних значений и отправляет их новым подписчикам.
- AsyncSubject — отправляет подписчикам только последнее значение и только после завершения последовательности.
Пример использования BehaviorSubject:
let subject = BehaviorSubject(value: "Initial")
subject.onNext("Second")
subject.subscribe(onNext: { value in
print("Received: \(value)")
})
// Выведет:
// Received: Second
Каждый тип Subject подходит для разных сценариев в реактивном программировании.