0
有一個快速的問題:我有一個Variable<[Session]>
,其中Session
:RxSwift flatMap最新一次不用設置
class Session {
...
var rx_serverRequestable: Driver<SessionRequestable>
...
}
其中每個會話具有所有需要傳遞的信息時發出。接下來事件到後臺,我希望能夠flatMapLatest
會話的陣列上,並且這樣做:
let sessions: Variable<[Session]>
sessions
.flatMapLatest { sessions in sessions.map { $0. rx_serverRequestable } }
.flatMap { $0.requestFromServer() }
但我只想要一次要求每個會話。有兩種方法可以看到我的當前實現失敗: 1. flatMapLatest獲取新的會話數組,可能會處理仍在進行中的服務器的請求 2.每當會話具有所需的全部信息時,會調用rx_serverRequestable從服務器加載,所以它會被多次調用,每次會話加載任何新的信息。我只想要第一次請求會話,我應該使用類似.multicast
還是.replay(1)
?
解決這兩個問題的任何指針,或切換我的方法?
你打算由'sessions.flatMapLatest ... flatMap'調用產生的結果做什麼來解決? –
將從服務器收到的信息分配回會話中的實例變量 – AndrewSB