swift - Swift Combine 从 func 返回 Publisher
问题描述
如果函数的输入参数有错误,我想返回发布者,但它给出了一些编译错误。
下面是相同的功能。
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)'
概括
如何创建我们的发布者来返回错误?
感谢您提供正确方向的任何提示。
解决方案
AnyPublisher
需要 aPublisher
作为其初始化参数,而您正在给它URLError
. 您可能的意思是说“我想要一个立即发布错误的发布者”。为此,您使用Fail
发布者:
return AnyPublisher(
Fail<List, Error>(error: URLError(.cannotParseResponse))
)
推荐阅读
- c# - Xamarin Forms CarouselPage ActivityIndicator in every ContentPages not working
- floating-point - How to round micros?
- linux - Ubuntu 18.04 内核转储文件生成 (KDUMP)
- pentaho - 在 Pentaho 上创建与数据库的连接时如何修复空指针异常?
- android - 活动不应在 mHomeReady 之前启动 - Android Studio
- html - HTML 代码产生语法错误但仍然有效;“正确”的代码不
- javascript - ngOnInit() 被调用两次
- javascript - 即使是javascript调用,音频标签也无法在移动设备中播放
- angular - Angular 4 - 带有 FormGroup 控件的 ngIf
- python - 我使用终端导入了 numpy,但是 python shell 说没有名为 numpy 的模块