我有一个处理 web 请求的 Observable,我想在不同的流中处理成功或失败,这与这个 example非常相似。我的脚本和示例之间的主要区别是我不想合并流然后订阅。我将 RxPY 1.6.1 与 Python 2.7 一起使用。
request = Observable.of(requests.get(self.URL, params=request_params))
request_success, request_failed = request.partition(lambda r: r.status_code == requests.codes.ok)
request_failed.subscribe(lambda r: print_msg('failure!'))
request_success.subscribe(lambda r: print_msg('success!'))
当请求失败时,脚本failure!
会按预期打印。但是,当响应正常时,脚本不会打印success!
. 有趣的是,当您切换订阅的顺序时,success!
确实会打印出来,而failure!
永远不会到达。
我想可能request
无法多播,所以我尝试添加publish()
到request
observable 并connect()
在创建订阅后调用。这没有帮助(所以我把它排除在上面的最小示例之外)。
我错过了什么?