Подписка на изменения корзины через sink получает только первое значение
final class CartBadgeController {
init(cart: CartService) {
_ = cart.$itemsCount
.sink { count in print("В корзине:", count) }
}
}
При создании контроллера в консоли появляется «В корзине: 0». Потом товары добавляются, itemsCount меняется, но больше ничего не печатается. Почему?
- AnyCancellable не сохранён, подписка сразу отменена
- sink получает значения только в главном потоке
- @Published не отдаёт значения через $
- print не работает внутри замыканий Combine
