【发布时间】:2018-08-09 18:01:06
【问题描述】:
这是一个简单的问题。我正在使用 angular2+ 应用程序,单击按钮时我正在执行 HTTP Post 请求,但需要一段时间才能响应。问题是当用户在我得到响应之前多次点击按钮时。我已经用传统的方式弄清楚了。创建一个锁定变量,确保在执行函数之前它为假,并在它执行时为真,当我得到响应时将其设置回假。 但我想知道是否有 RX 智能方法可以做到这一点?谢谢
【问题讨论】:
这是一个简单的问题。我正在使用 angular2+ 应用程序,单击按钮时我正在执行 HTTP Post 请求,但需要一段时间才能响应。问题是当用户在我得到响应之前多次点击按钮时。我已经用传统的方式弄清楚了。创建一个锁定变量,确保在执行函数之前它为假,并在它执行时为真,当我得到响应时将其设置回假。 但我想知道是否有 RX 智能方法可以做到这一点?谢谢
【问题讨论】:
你的方法听起来不错。或者,您可以对发出 HTTP 请求的函数进行去抖动处理。为此使用 lodash debounce。我确实查看了是否有 RxJs 替代去抖动,但没有找到。我尝试了 debounceTime,但这不是我想要的行为。
【讨论】:
请分享代码。您可以使用 RXJS 共享运算符。
return this.service.pipe(
map(response=> response),
share()
);
【讨论】: