實例方法
try
tryMax(by:)
發布從上遊發布者收到的最大值,使用提供的error-throwing 閉包來排序項目。
聲明
func tryMax(by areInIncreasingOrder: @escaping (Self.Output, Self.Output) throws -> Bool) -> Publishers.TryComparison<Self>
返回值
在上遊發布者完成後,發布從上遊發布者接收到的最大值的發布者。
參數
areInIncreasingOrder
一個拋出閉包,它接收兩個元素並返回
true
(如果它們按遞增順序排列)。如果此閉包拋出,則發布者以Subscribers/Completion/failure(_:)
終止。
詳述
使用 Publisher/tryMax(by:)
來確定使用您指定的 error-throwing 閉包從上遊發布者接收到的元素的最大值。
在下麵的示例中,數組發布元素。 Publisher/tryMax(by:)
運算符執行 error-throwing 閉包,當 first
元素為奇數時拋出該閉包,從而終止發布者。
struct IllegalValueError: Error {}
let numbers: [Int] = [0, 10, 6, 13, 22, 22]
cancellable = numbers.publisher
.tryMax { first, second -> Bool in
if (first % 2 != 0) {
throw IllegalValueError()
}
return first > second
}
.sink(
receiveCompletion: { print ("completion: \($0)") },
receiveValue: { print ("value: \($0)") }
)
// Prints: completion: failure(IllegalValueError())
在此發布者收到超過 0 個項目的請求後,它會向其上遊發布者請求無限個項目。
可用版本
iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+
相關用法
- Swift Optional.Publisher tryMap(_:)用法及代碼示例
- Swift Optional.Publisher tryMin(by:)用法及代碼示例
- Swift Optional.Publisher tryDrop(while:)用法及代碼示例
- Swift Optional.Publisher tryAllSatisfy(_:)用法及代碼示例
- 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 tryContains(where:)用法及代碼示例
- Swift Optional.Publisher tryCompactMap(_:)用法及代碼示例
- Swift Optional.Publisher tryRemoveDuplicates(by:)用法及代碼示例
- Swift Optional.Publisher tryLast(where:)用法及代碼示例
- 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 tryMax(by:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。