当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Optional.Publisher setFailureType(to:)用法及代码示例


实例方法

setFailureType(to:)

更改上游发布者声明的失败类型。

声明

func setFailureType<E>(to failureType: E.Type) -> Publishers.SetFailureType<Self, E> where E : Error
FailureNever 时可用。

返回值

似乎发送指定失败类型的发布者。

参数

failureType

此发布者提供的 Failure 类型。

详述

当您需要设置不能失败的发布者的错误类型时,使用Publisher/setFailureType(to:)

相反,如果上游可能失败,您将使用Publisher/mapError(_:) 提供有关将错误类型转换为下游发布者输入所需的说明。

以下示例有两个错误类型不匹配的发布者: pub1 的错误类型是 Never pub2 的错误类型是 Error 。由于不匹配,Publisher/combineLatest(_:) 运算符要求pub1 使用Publisher/setFailureType(to:) 以使pub1 可以产生 Error 类型,就像pub2 一样。


let pub1 = [0, 1, 2, 3, 4, 5].publisher
let pub2 = CurrentValueSubject<Int, Error>(0)
let cancellable = pub1
    .setFailureType(to: Error.self)
    .combineLatest(pub2)
    .sink(
        receiveCompletion: { print ("completed: \($0)") },
        receiveValue: { print ("value: \($0)")}
     )


// Prints: "value: (5, 0)".

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional.Publisher setFailureType(to:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。