在 RxJava 中显式终止流
Explicitly terminating a stream in RxJava
阅读 RxJava,我注意到您可以控制流何时完成,即最后一次发射何时发送到下游。目前尚不清楚您如何实际控制它。我在 RxJava 上看到的大多数示例都会让您使用 "just" 或 "fromIterable" 之类的东西和一个数组来创建一个 Observable。然后数组中的每个项目将被发送到流中,然后在处理完最后一个发射后调用 onComplete。当然,您可以应用运算符,例如 "take" ,这也会导致 onComplete 在发送数量已发送后执行。
但是是否有可能导致 onComplete 由一些更通用的运算符执行,例如 "finish"(不存在)?或者您是否必须依赖现有的运算符来执行 onComplete?换句话说,我可以显式地调用一些东西来结束流,而不是依赖于满足某些条件来执行 onComplete 吗?
您可以使用 TakeWhile 运算符:
mirror items emitted by an Observable until a specified condition becomes false
阅读 RxJava,我注意到您可以控制流何时完成,即最后一次发射何时发送到下游。目前尚不清楚您如何实际控制它。我在 RxJava 上看到的大多数示例都会让您使用 "just" 或 "fromIterable" 之类的东西和一个数组来创建一个 Observable。然后数组中的每个项目将被发送到流中,然后在处理完最后一个发射后调用 onComplete。当然,您可以应用运算符,例如 "take" ,这也会导致 onComplete 在发送数量已发送后执行。
但是是否有可能导致 onComplete 由一些更通用的运算符执行,例如 "finish"(不存在)?或者您是否必须依赖现有的运算符来执行 onComplete?换句话说,我可以显式地调用一些东西来结束流,而不是依赖于满足某些条件来执行 onComplete 吗?
您可以使用 TakeWhile 运算符:
mirror items emitted by an Observable until a specified condition becomes false