Установите для данного типа ошибок издателей значение «Никогда не объединять» - PullRequest
0 голосов
/ 04 октября 2019

Есть ли способ преобразовать данное AnyPublisher<AnyType, SomeError> в AnyPublisher<AnyType, Never>?

1 Ответ

1 голос
/ 04 октября 2019

Издатель с Never в качестве типа ошибки означает, что он вообще не может выдавать ошибку. Он всегда будет содержать значение.

Чтобы получить издателя, который никогда не выдаст ошибки, у вас есть 2 решения:

1 / Перехват всех возможных ошибок:

let publisher: AnyPublisher<AnyType, SomeError> = //...

publisher.catch { error in
  // handle the error here. The `catch` operator requires to
  // return a "fallback value" as a publisher
  return Just(/* ... */) // as an example
}

2/ Если вы уверены, что издатель не может выдать никаких ошибок, вы можете использовать .assertNoFailure(), который преобразует вашего издателя. Обратите внимание, что при передаче .assertNoFailure() произошла ошибка, ваше приложение немедленно вылетает.

...