Swift 合并 return 来自 func 的发布者

Swift Combine return Publisher from func

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

下面是相同的函数。

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
}

错误

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

总结

如何创建我们的发布者来return报错?

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

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

return AnyPublisher(
    Fail<List, Error>(error: URLError(.cannotParseResponse))
)