2016-06-27 1 views
0

私は、親エンティティをAPIからダウンロードしてデータベースに保存するシナリオを持っています。親のすべてが救われたら、子供たちをダウンロードして救いたいと思っています。副作用についての混乱/ ContinueAfter

子セーブ操作に親セーブ操作の結果を渡さないため、これが副作用であることについてのいくつかのコメントを見ました(または間違っています)。私は単に親が救われたときにそれを始めたいと思う。

誰かがこれを行う最善の方法を私に説明できますか?

答えて

1

はおそらく、このような何かを試してみてください:これは効果的にそれが行くようにそれらを保存し、しかし、あなたが購読できることを、単一の観察可能な出力、エンティティのすべての幅優先横断を行っている

Observable 
    .Create<int>(o => 
    { 
     var parentIds = new int?[] { null }; 
     return 
      Observable 
       .While(
        () => parentIds.Any(), 
        parentIds 
         .ToObservable() 
         .Select(parentId => Save(parentId))) 
         .Finally(() => { /* update `parentIds` here with next level */ }) 
       .Subscribe(o); 
    }) 
    .Subscribe(x => { }); 

+0

私は右のトラックに感謝しました。 –

関連する問題