Почему издатель 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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