Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RxJava 2运算符组合,只提供一组中的第一个值_Java_Android_Rx Java_Rx Android - Fatal编程技术网

RxJava 2运算符组合,只提供一组中的第一个值

RxJava 2运算符组合,只提供一组中的第一个值,java,android,rx-java,rx-android,Java,Android,Rx Java,Rx Android,我的想法是,当我多次调用publishSubject.onNext(someValue)时,我只需要像debounce操作符那样获取一个值,但它会传递最后一个值,我需要跳过所有值,除了第一个值,直到我停止调用onNext()1秒。 我尝试过使用类似于throttleFirst(1000,TimeUnit.ms)的东西,但它不像debounce那样工作,它只是让windows在每次传递后立即传递下一个值,并在1秒后立即传递下一个值。您可以使用第一个操作符。比如: Observable.first(

我的想法是,当我多次调用
publishSubject.onNext(someValue)
时,我只需要像
debounce
操作符那样获取一个值,但它会传递最后一个值,我需要跳过所有值,除了第一个值,直到我停止调用
onNext()
1秒。
我尝试过使用类似于throttleFirst(1000,TimeUnit.ms)的东西,但它不像debounce那样工作,它只是让windows在每次传递后立即传递下一个值,并在1秒后立即传递下一个值。

您可以使用第一个操作符。比如:

Observable.first()
只需要第一个值即可尝试以下操作:

// Observable<T> stream = ...;
stream.window(stream.debounce(1, TimeUnit.Seconds))
      .flatMap(w -> w.take(1));
//可观测流=。。。;
stream.window(stream.debounce(1,时间单位秒))
.flatMap(w->w.take(1));
说明:如果我理解正确,您希望在1秒之前未发射任何项目时发射项目。这相当于将项目后面的第一个元素取消抖动1秒。下面的大理石图也可能有帮助:


可以发布您的示例代码吗?