防止多个HTTP请求

时间:2018-08-09 18:01:06

标签: angular rxjs

这是简单的问题。我正在使用angular2 +应用程序,并且单击按钮时,我正在执行HTTP Post请求,但需要一段时间才能做出响应。问题是用户在我得到响应之前多次按下按钮。我已经用传统方式弄清楚了。创建一个锁变量,确保在执行该函数之前将其设置为false,在执行该函数时将其设置为true,以便在我得到响应时将其设置回false。 但是我想知道是否存在RX智能方式?谢谢

2 个答案:

答案 0 :(得分:2)

您的方法听起来不错。或者,您可以对发出HTTP请求的函数进行反跳操作。为此使用lodash防抖。我确实想看看是否有RxJs可以替代反跳,但没有找到。我尝试了debounceTime,但这不是我想要的行为。

答案 1 :(得分:0)

请共享代码。您可以使用RXJS共享运算符。

return this.service.pipe(
  map(response=> response),
  share()
);