RxJava中的retryWhen操作符的影响范围

今天发现一个有趣的现象,这里先说结论
RxJava的retryWhen操作符会影响上游,而不会影响下游,比如下游发生了异常,不会重试,而上游发生了异常,会重试retryWhen指定的次数
思考一下就能知道原因,因为订阅是从下到上订阅,而数据流是从上到下流动,所以retryWhen返回的Observable发现上流的数据有异常的时候会重试,没有异常了就流给下游,所以retryWhen只能控制它所在的上游

你可能感兴趣的:(RxJava中的retryWhen操作符的影响范围)