Rx: Соединение нескольких IObservable веб-запросов - PullRequest
3 голосов
/ 06 апреля 2010

Я создаю несколько асинхронных веб-запросов с использованием IObservables и реактивных расширений.

Итак, это создает наблюдаемый для веб-запроса "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();

И я могу сделать

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

Как правильно выполнить несколько асинхронных веб-запросов с IObservables и LINQ, которые должны ждать, пока другие запросы не будут завершены?

Например, сначала я хотел бы проверить информацию о пользователе: создать userInfoObservable, затем, если информация о пользователе верна, я хочу обновить статистику, чтобы получить updateStatusObservable, затем, если статус обновлен, я хотел бы создать дружбу и другие возможности.

Также бонусный вопрос, есть случай, когда я хотел бы выполнять веб-вызовы одновременно, и когда все будут завершены, выполнить другую наблюдаемую операцию, которая будет продолжаться, пока другие вызовы не будут завершены.

Спасибо.

1 Ответ

0 голосов
/ 06 апреля 2010
...