Swift Combine Publisher - обнаружение ошибок от издателя Void

У меня есть издатель с подписью, которую я хочу выполнить в функции и вернуть что-то, чтобы указать, не удалось ли издателю или преуспел. Я пытаюсь понять, какую технику использовать для запуска издателя и возврата результата.

Один из них - передать завершение закрытия и погрузиться в него следующим образом:

      func runPublisher(completion: (Error?) -> Void) {
    cancellable = MyPublisher()
                    .sink(receiveCompletion: { result in
                              switch result {
                                  case .finished: completion(nil)
                                  case .failure(let error): completion(error)
                              }
                          }, 
                          receiveValue: { _ in })
)

Но я чувствую, что есть способ сделать это лучше. В основном неуклюжим способом я передаю пустое закрытие .

Я мог бы просто вернуть но при этом ответственность за проверку ошибок передается вызывающему коду.

Так есть ли лучший способ написать такую ​​функцию? Какой-то функции объединения я не заметил? Другая подпись для функции?

0 ответов

Другие вопросы по тегам