I'm very new to the concept Publishers and I'm creating a networking service using dataTaskPublisher
on URLSession
. There is a case for refreshing token and I have a refreshToken()
method which returns AnyPublisher<Bool, Never>
:
func refreshToken() -> AnyPublisher<Bool, Never> {
var disposable = Set<AnyCancellable>()
do {
let request = URLRequest(url: URL(string: "refresh_token_url")!)
URLSession.shared.dataTaskPublisher(for: request).sink { finished in
/// Compiler error: Cannot convert value of type 'AnyPublisher<Bool, Never>' to closure result type 'Void'
return Just(false).eraseToAnyPublisher()
} receiveValue: { _ in
/// What should I return here?
return Just(true).eraseToAnyPublisher()
}.store(in: &disposable)
} catch {
return Just(false).eraseToAnyPublisher()
}
}
Compiler complains for both of Just().eraseToAnyPublisher()
. I don't know how and where should return Just(false).eraseToAnyPublisher()
based on success or failure of this refresh token call.