Swift结合从func返回发布者

Ekr*_*kra 4 publisher swift combine

如果输入参数中有错误,我想返回函数的发布者,但它给出了一些编译错误。

下面是相同的功能。

func fetchList(input: String) -> AnyPublisher<List, Error> {
    guard let url = URL(string: input)  else {            
        return AnyPublisher(URLError(.cannotParseResponse))
    }
    //some call for to get the List which returns publisher
}
Run Code Online (Sandbox Code Playgroud)

错误

Cannot invoke initializer for type 'AnyPublisher<_, _>' with an argument list of type '(URLError)'

概括

如何创建我们的发布者以返回错误?

感谢您提供正确方向的任何提示。

Swe*_*per 8

AnyPublisher需要 aPublisher作为它的初始化参数,而你给它URLError. 您可能想说“我想要一个立即发布错误的发布者”。为此,您可以使用Fail发布者:

return AnyPublisher(
    Fail<List, Error>(error: URLError(.cannotParseResponse))
)
Run Code Online (Sandbox Code Playgroud)