gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:09:04 25 4
gpt4 key购买 nike

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

最佳答案

试试这个:

// Observable<T> stream = ...;
stream.window(stream.debounce(1, TimeUnit.Seconds))
.flatMap(w -> w.take(1));

解释:如果我理解正确的话,如果之前 1 秒没有发出任何元素,那么您想要发出元素。这相当于让一个项目后面的第一个元素去抖 1 秒。下面的弹珠图也可能有帮助:

enter image description here

关于java - RxJava 2 运算符组合,仅提供一组值中的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46681548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com