Rxjs 如何使用next限制添加到行为主题流的值流?
从一个空的observable开始,我有一个稳定的非rxjs事件流,我需要用rxjs进行节流,但我找不到一种方法来创建节流输出。在我的用例中,我不知道第一个值何时到达,也不能确定新值到达的频率 我希望这个示例能够工作,并显示与next()一起添加的值,这些值的间隔为1s,但它不起作用Rxjs 如何使用next限制添加到行为主题流的值流?,rxjs,throttling,Rxjs,Throttling,从一个空的observable开始,我有一个稳定的非rxjs事件流,我需要用rxjs进行节流,但我找不到一种方法来创建节流输出。在我的用例中,我不知道第一个值何时到达,也不能确定新值到达的频率 我希望这个示例能够工作,并显示与next()一起添加的值,这些值的间隔为1s,但它不起作用 import { BehaviorSubject, interval } from 'rxjs'; import { tap, map, throttle } from 'rxjs/operators'; co
import { BehaviorSubject, interval } from 'rxjs';
import { tap, map, throttle } from 'rxjs/operators';
const subject = new BehaviorSubject(1);
const example = subject.pipe(
throttle(ev => interval(1000)),
tap((ev) => console.log(ev))
)
example.subscribe();
example.next(2);
example.next(3);
example.next(4);
example.next(5);
example.next(6);
我找不到任何在线的例子来匹配这个(显然)简单的用例,使用rxjs来实现这一点感觉很不直观。非常感谢您的帮助
throttleTime
允许您指定在再次发出之前等待的毫秒数
const example = subject.pipe(
throttleTime(1000),
tap((ev) => console.log(ev))
)
我建议您签出并单击以查看可用的选项:
我有一个现有的可观察的
我想忽略值
这种情况发生得太频繁了
嗨,谢谢你的回答。如果我不介意丢失添加了.next()的项,有没有办法用throttle()实现类似的解决方案?我不想在流中引入人为延迟,只需将输出调平到有规律的间隔即可。@LaurencePass对不起,我以为您希望两次排放之间有1秒的延迟。我已经更新了答案。谢谢你的帮助。回答的问题+1因为决策树没有看到这一点。