當我看到 ReactiveSwift 的示例代碼時,我感到很困惑,因為直觀地希望觀察者接收事件。為什么Observer要設計有send(_:)方法?
// Signal.pipe is a way to manually control a signal.
// the returned observer can be used to send values to the signal
let (signal, observer) = Signal<Int, Never>.pipe()
observer.send(value: 10)
uj5u.com熱心網友回復:
我同意這在 的背景關系中有點令人困惑pipe,其中“觀察者”通常被認為是輸入,而術語“觀察者”讓您考慮觀察信號的輸出。
我的想法是,在這兩種情況下,都會觀察到一些事情,即使這些事情非常不同:
- 在觀察信號的背景關系中,信號正在向觀察者發送事件,即觀察者正在“觀察”信號。
- 在 的背景關系中
pipe,您的代碼正在向觀察者發送事件,即觀察者正在“觀察”您的代碼。
希望這可以解釋為什么在兩種情況下都使用相同的型別。請注意,您可以使用回傳的觀察者pipe()直接觀察信號:
let someSignal: Signal<Int, Never> = ...
let (signal, observer) = Signal<Int, Never>.pipe()
someSignal.observe(observer)
此代碼“管道”事件從someSignal到signalvia observer。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/399865.html
上一篇:iOSFirebase按日期分頁
