【发布时间】:2020-04-20 17:17:04
【问题描述】:
我有三个出版商。两种已经产生了价值,另一种可能会也可能不会。我需要将它们组合起来并产生输出。
var changeDay = NotificationCenter.Publisher.init(center: .default, name: .NSCalendarDayChanged
var someDate: AnyPublisher<Date, Never> {
Publishers.CombineLatest3($someInputBool, $someInputDate, changeDay).map { (a, b, c) -> Date in
return <someDate based on a and b, but if day changes, the result will be different.>
}.eraseToAnyPublisher()
}
如果日期尚未更改,CombineLatest3 将不会返回任何内容,因为它会在运行 clousure 之前等待来自 c 的初始值。即使一个发布者没有发出单个值,我如何确保 CombineLatest3 返回?我在这里使用c 作为触发器来重新计算我的自定义日期。
【问题讨论】: