Преобразование URLSession.DataTaskPublisher в будущего издателяIOS

Программируем под IOS
Anonymous
Преобразование URLSession.DataTaskPublisher в будущего издателя

Сообщение Anonymous »

Как преобразовать URLSession.DataTaskPublisher в Future в среде объединения.
На мой взгляд, издатель Future более подходит здесь, поскольку вызов может выдать только один ответ и в конечном итоге завершается неудачей.

В RxSwift есть вспомогательный метод, такой как asSingle.

Я добился этого преобразования, используя следующий подход, но понятия не имею, лучший ли это метод.

Код: Выделить всё

        return Future.init { (observer) in
self.urlSession.dataTaskPublisher(for: urlRequest)
.tryMap { (object) -> Data in
//......
}
.receive(on: RunLoop.main)
.sink(receiveCompletion: { (completion) in
if case let .failure(error) = completion {
observer(.failure(error))
}
}) { (response) in
observer(.success(response))
}.store(in: &self.cancellable)
}
}
Есть ли простой способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/604 ... -publisher

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