2016-09-27 8 views
0

を配置することなく、最新の1時間は、簡単な質問を持っていた:.nextイベントにセッションが渡される必要があるすべての情報を持っているすべての時間を発するRxSwift flatMap

class Session { 
    ... 
    var rx_serverRequestable: Driver<SessionRequestable> 
    ... 
} 

:私はSessionVariable<[Session]>を、持っています私はセッションのアレイ上flatMapLatestにできるようにしたい、とのような何かをバックエンドにして:

let sessions: Variable<[Session]> 
sessions 
    .flatMapLatest { sessions in sessions.map { $0. rx_serverRequestable } } 
    .flatMap { $0.requestFromServer() } 

を私は一度だけ、各セッションを要求します。現在の実装で失敗するのは2通りあります。 1. flatMapLatestは新しいセッション配列を取得し、進行中のサーバからのリクエストを処理してしまう可能性があります 2. rx_serverRequestableはセッションに必要なすべての情報サーバーからロードされるので、セッションが新しい情報でロードされるたびに、複数回呼び出されます。 .multicastまたは.replay(1)のようなものを使用する必要がありますか?

2つの問題を解決する上での指針、または私のアプローチを切り替えるには?

+0

を使用して解決することができますか? –

+0

サーバーから受信した情報をセッション上のインスタンス変数に割り当てます – AndrewSB

答えて