实例方法
try
tryAllSatisfy(_:)
发布单个布尔值,指示是否所有接收到的元素都通过给定的error-throwing 谓词。
声明
func tryAllSatisfy(_ predicate: @escaping (Self.Output) throws -> Bool) -> Publishers.TryAllSatisfy<Self>
返回值
发布者发布一个布尔值,该值指示是否所有接收到的元素都通过给定的谓词。
参数
predicate
评估每个接收到的元素的闭包。返回
true
继续,或false
取消上游并完成。闭包可能会抛出错误,在这种情况下,发布者会取消上游发布者并因抛出的错误而失败。
详述
使用Publisher/tryAllSatisfy(_:)
运算符确定流中的所有元素是否满足您提供的error-throwing 谓词中的条件。当此发布者收到一个元素时,它会针对该元素运行谓词。如果谓词返回 false
,则发布者生成 false
值并完成。如果上游发布者正常完成,则此发布者会生成 true
值并完成。如果谓词抛出错误,发布者将失败并将错误传递给其下游订阅者。
在下面的示例中,error-throwing 谓词测试整数数组发布者的每个元素是否落入 targetRange
;如果元素为零,谓词将引发错误并终止流。
let targetRange = (-1...100)
let numbers = [-1, 10, 5, 0]
numbers.publisher
.tryAllSatisfy { anInt in
guard anInt != 0 else { throw RangeError() }
return targetRange.contains(anInt)
}
.sink(
receiveCompletion: { print ("completion: \($0)") },
receiveValue: { print ("value: \($0)") }
)
// Prints: "completion: failure(RangeError())"
使用类似于 Publisher/reduce(_:_:)
的运算符,此发布者最多生成一个值。
可用版本
iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+
相关用法
- Swift Optional.Publisher tryDrop(while:)用法及代码示例
- Swift Optional.Publisher tryReduce(_:_:)用法及代码示例
- Swift Optional.Publisher tryPrefix(while:)用法及代码示例
- Swift Optional.Publisher tryFirst(where:)用法及代码示例
- Swift Optional.Publisher tryScan(_:_:)用法及代码示例
- Swift Optional.Publisher tryFilter(_:)用法及代码示例
- Swift Optional.Publisher tryMax(by:)用法及代码示例
- Swift Optional.Publisher tryContains(where:)用法及代码示例
- Swift Optional.Publisher tryCompactMap(_:)用法及代码示例
- Swift Optional.Publisher tryRemoveDuplicates(by:)用法及代码示例
- Swift Optional.Publisher tryMap(_:)用法及代码示例
- Swift Optional.Publisher tryLast(where:)用法及代码示例
- Swift Optional.Publisher tryMin(by:)用法及代码示例
- Swift Optional.Publisher tryCatch(_:)用法及代码示例
- Swift Optional.Publisher throttle(for:scheduler:latest:)用法及代码示例
- Swift Optional.Publisher timeout(_:scheduler:options:customError:)用法及代码示例
- Swift Optional.Publisher reduce(_:_:)用法及代码示例
- Swift Optional.Publisher debounce(for:scheduler:options:)用法及代码示例
- Swift Optional.Publisher breakpoint(receiveSubscription:receiveOutput:receiveCompletion:)用法及代码示例
- Swift Optional.Publisher mapError(_:)用法及代码示例
- Swift Optional.Publisher catch(_:)用法及代码示例
- Swift Optional.Publisher zip(_:_:_:)用法及代码示例
- Swift Optional.Publisher sink(receiveValue:)用法及代码示例
- Swift Optional.Publisher scan(_:_:)用法及代码示例
- Swift Optional.Publisher assertNoFailure(_:file:line:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional.Publisher tryAllSatisfy(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。