2010-04-05 7 views
3

Je crée plusieurs requêtes Web asynchrones à l'aide de IObservables et d'extensions réactives.Rx: regroupement de plusieurs requêtes Web IObservable

Donc cela crée observable pour la demande Web "GET":

  var tweetObservalue = 
      from request in WebRequestExtensions.CreateWebRequest(outUrl + querystring, method) 
      from response in request.GetResponseAsync() 
      let responseStream = response.GetResponseStream() 
      let reader = new StreamReader(responseStream) 
      select reader.ReadToEnd(); 

Et je peux le faire

tweetObservable.Subscribe(response => dosomethingwithresponse(response)); 

Quelle est la bonne façon d'exécuter plusieurs requêtes Web asynchrones avec IObservables et LINQ qui ont attendre que les autres demandes soient terminées? Par exemple, je voudrais d'abord vérifier les informations utilisateur: créer userInfoObservable, puis si les informations utilisateur sont correctes, je veux mettre à jour les statistiques afin d'obtenir updateStatusObservable puis si l'état est mis à jour, j'aimerais créer friendshipObservable et ainsi de suite.

En outre question de bonification, il y a un cas où je voudrais exécuter des appels Web simultanément et quand tous sont terminés exécuter une autre observable qui sera jusqu'à ce que d'autres appels soient terminés.

Merci.

Répondre