有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java RxJava过期订阅

我想对某个事件做出反应,如果它在某个时间窗口内并且只发生一次。现在,代码如下所示:

mServiceRestartEmitter.take(1).subscribe(action);

但是,我希望该操作不仅在事件消耗1x后取消订阅,而且如果事件在接下来的300ms内没有发生,也要取消订阅。 如何做到这一点


共 (1) 个答案

  1. # 1 楼答案

    刚刚意识到take()操作符还允许时间限制:

    mServiceRestartEmitter.take(500, TimeUnit.MILLISECONDS).take(1).subscribeOn(Schedulers.io()).subscribe(action);
    

    我们应该做到这一点