【问题标题】:Swift Combine return Publisher from funcSwift Combine 从 func 返回 Publisher
【发布时间】:2020-10-13 01:00:07
【问题描述】:

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

下面是相同的功能。

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&lt;_, _&gt;' with an argument list of type '(URLError)'

总结

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

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

【问题讨论】:

    标签: swift combine publisher


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 2020-05-19
      • 1970-01-01
      • 2015-10-20
      相关资源
      最近更新 更多