Почему издатель Combine все еще может излучать значения после того, как он испускает завершениеIOS

Программируем под IOS
Anonymous
Почему издатель Combine все еще может излучать значения после того, как он испускает завершение

Сообщение Anonymous »

Теоретически, на мой взгляд, издатель не излучает значения, как только он издает событие завершения. Это верно, когда я использую такие издатели, как PassThroughSubject .
Однако, как примере кода ниже, я использую издатель, такой как просто или [1, 2, 3] .publisher и первый подписчик уже получает . Но второй абонент все еще может получить испускаемое значение и событие завершения. < /P>
Я что -то недопонимаю?var subscriptions = Set()

let publisher = Just(1) // or [1, 2, 3].publisher

publisher.sink {
print($0)
} receiveValue: {
print($0)
}
.store(in: &subscriptions)

publisher.sink {
print($0)
} receiveValue: {
print($0)
}
.store(in: &subscriptions)
< /code>
Вывод в консоли: < /p>
1
finished
1
finished


Подробнее здесь: https://stackoverflow.com/questions/746 ... completion

Вернуться в «IOS»