Rxjs 如何使用next限制添加到行为主题流的值流?

Rxjs 如何使用next限制添加到行为主题流的值流?,rxjs,throttling,Rxjs,Throttling,从一个空的observable开始,我有一个稳定的非rxjs事件流,我需要用rxjs进行节流,但我找不到一种方法来创建节流输出。在我的用例中,我不知道第一个值何时到达,也不能确定新值到达的频率 我希望这个示例能够工作,并显示与next()一起添加的值,这些值的间隔为1s,但它不起作用 import { BehaviorSubject, interval } from 'rxjs'; import { tap, map, throttle } from 'rxjs/operators'; co

从一个空的observable开始,我有一个稳定的非rxjs事件流,我需要用rxjs进行节流,但我找不到一种方法来创建节流输出。在我的用例中,我不知道第一个值何时到达,也不能确定新值到达的频率

我希望这个示例能够工作,并显示与next()一起添加的值,这些值的间隔为1s,但它不起作用

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因为决策树没有看到这一点。