實例方法
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(_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。