我在试着理解throttleTimevsdebounceTime以及什么时候使用哪一个?
我有一个upvote按钮,它向后端发出api请求(计算投票数)。用户可以多次提交按钮,但我想限制每秒按按钮的次数。
我知道ThrottleTime和DebounceTime运算符可以做到这一点,但我应该选择哪个更好?

const upvoteClicks = fromEvent(this.el.nativeElement, 'click')
 .pipe(debounceTime(500))
 .subscribe(() => this.myService.postUpvote(this.postId));

最佳答案

我认为在您的情况下throttleTime工作得更好一些,因为您希望在用户单击按钮时立即发出api请求。
throttleTimedebounceTime都忽略了同时发生的事件,但是throttleTime会立即发出,而
debounceTime等待额外延迟。
您可以在https://rxmarbles.com上很好地看到这一点。
angular - rxjs中的 throttle 时间与debounceTime之间的区别以及何时选择哪个?-LMLPHP
angular - rxjs中的 throttle 时间与debounceTime之间的区别以及何时选择哪个?-LMLPHP
更重要的是,throttleTime vs debounceTime in RxJS文章提供了两个运营商的良好概述。

关于angular - rxjs中的 throttle 时间与debounceTime之间的区别以及何时选择哪个?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56460436/

10-12 04:27