在我的应用程序中,我使用Web请求调用链从网上获取数据。即从一个请求的结果我会发送其他请求等。但是当我处理Web请求时,只有父请求正在处理。另外两个请求仍在运行。如何我可以取消所有这些请求在Rx如何在Windows Phone 7中处理嵌套的Rx Web请求调用
1
A
回答
2
您的订阅终止一切,你要么不能打破单子,或者你需要确保你进入IDisposable
模式工作。
为了保持单子(即坚持IObservables):
var subscription = initialRequest.GetObservableResponse()
.SelectMany(initialResponse =>
{
// Feel free to use ForkJoin or Zip (intead of Merge) to
// end up with a single value
return secondRequest.GetObservableResponse()
.Merge(thirdRequest.GetObservableResponse());
})
.Subscribe(subsequentResponses => { });
为了使用IDisposable
模式:
var subscription = initialRequest.GetObservableResponse()
.SelectMany(initialResponse =>
{
return Observable.CreateWithDisposable(observer =>
{
var secondSubscription = new SerialDisposable();
var thirdSubscription = new SerialDisposable();
secondSubscription.Disposable = secondRequest.GetObservableResponse()
.Subscribe(secondResponse =>
{
// Be careful of race conditions here!
observer.OnNext(value);
observer.OnComplete();
});
thirdSubscription.Disposable = thirdRequest.GetObservableResponse()
.Subscribe(thirdResponse =>
{
// Be careful of race conditions here!
});
return new CompositeDisposable(secondSubscription, thirdSubscription);
});
})
.Subscribe(subsequentResponses => { });
1
一个approah是通过使用TakeUntil扩展方法如here所述。在你的情况下,将此方法作为参数的事件可能是父请求抛出的某个事件。
如果您可以向我们展示一些代码,我们可以更具体地面对问题。
问候,
相关问题
- 1. 如何在Windows Phone 7中取消基于Rx的Web请求
- 2. Windows Phone 7是否缓存Web请求?
- 3. Windows Phone VB Web请求
- 4. 如何在Windows Phone 7中调用webservice?
- 5. 如何在CherryPy中处理Web请求?
- 6. windows phone 7 xml响应处理
- 7. Windows Phone中的嵌套UserControls
- 8. 如何处理windows phone 7中的方向?
- 9. 事件处理程序的Windows Phone 7
- 10. RXJava处理嵌套调用
- 11. 如何删除Windows Phone 7中的点击处理程序?
- 12. 如何处理Windows Phone 7上的后退按钮
- 13. 在windows phone 7中
- 14. Windows Phone 7自定义协议处理
- 15. Web请求超时处理?
- 16. Windows Phone 7 - 使用WebClient处理Application_UnhandledException中的错误
- 17. 在Flask请求中处理嵌套数组
- 18. 具有嵌套web请求的Gevent池
- 19. 如何 - Windows Phone 7?
- 20. 如何在Windows Phone 7中使用BingMapsTask?
- 21. 在Main中处理Web请求?
- 22. 如何向Windows Phone 7发送POST请求?
- 23. Windows Phone 7:在MediaElement中寻求
- 24. 在(Rx和Windows Phone)绑定文本中的问题
- 25. Windows Phone 7和Web服务
- 26. Windows Phone 7 - 取消选择嵌套列表框中的ListBoxItem
- 27. Windows Phone 7使用套接字的FTP
- 28. 如何在Windows Phone 7中显示嵌入表格的行?
- 29. 如何在Windows phone应用程序中使用Reactive Extensions [RX]?
- 30. 如何使用Web客户端在Windows Phone 7的
请发表您的代码。使用一个简单的'SelectMany'查询可以在一行中解决您的问题,但很难解释如何在不引用代码的情况下将其应用于您的情况。 – Enigmativity 2012-04-26 03:02:51