Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

swift - Cannot convert return expression of type '(AnyPublisher<DemoObject, Never>, APIError)' to return type 'AnyPublisher<DemoObject, APIError>'

func testData()->AnyPublisher<DemoObject, APIError> {

    var data = DummyData().decodeClaimDetails()!
    
    return (Just(data).eraseToAnyPublisher(),
            APIError.httpError(200))
    
}

I got this error. Cannot convert return expression of type '(AnyPublisher<DemoObject, Never>, APIError)' to return type 'AnyPublisher<DemoObject, APIError>'

How can I return a type that is AnyPublisher<DemoObject, APIError>?

question from:https://stackoverflow.com/questions/66055354/cannot-convert-return-expression-of-type-anypublisherdemoobject-never-apie

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You want

func testData()->AnyPublisher<DemoObject, APIError> {
    let d: DemoObject = // ...
    return Just<DemoObject>(d)
        .setFailureType(to: APIError,self) // <--
        .eraseToAnyPublisher()
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...