Here is my pipeline:
URLSession.shared
.dataTaskPublisher(for: urlRequest)
.map { $0.data }
.mapError { ...... }
.eraseToAnyPublisher()
.decode(type: MyObject.self, decoder: JSONDecoder())
.receive(on: RunLoop.main)
.catch { [weak self] error -> Just<MyObject> in
guard let self = self else { return Just(emptyPayload) }
self.hasError = true
return Just(emptyPayload)
}
.sink(
receiveCompletion: { [weak self] _ in
print("i'm here")
},
receiveValue: { [weak self] value in
print("value")
}
)
Why is sink never called?