【发布时间】:2021-06-18 12:51:58
【问题描述】:
我很难理解为什么在底层代码中没有收到 sink 的值。
func somePublisher() -> AnyPublisher<Bool, Never> {
let subject = PassthroughSubject<Bool, Never>()
subject.send(true)
subject.send(completion: .finished)
return subject.eraseToAnyPublisher()
}
somePublisher()
.first()
.sink { _ in
print("Completed")
} receiveValue: {
print("Received \($0)")
}
.store(in: &sinks)
输出:
完成
如果在连接之前完成,发布者似乎不会在流下游接收到值。是对的吗? 如果我的发布者可以同步完成,我该如何解决这个问题?
【问题讨论】: