【发布时间】:2019-04-05 10:14:16
【问题描述】:
Dart 有没有办法像这样限制函数执行
Observable.throttle(myFunction,2000);
【问题讨论】:
-
thottle或debouncefrom github.com/ReactiveX/rxdart 应该提供。 medium.com/fantageek/… 可能是相关的。 -
我不确定如何将这些信息与我所拥有的信息结合起来,听按钮是否对颤振有效?
-
在 Dart 中,要重复调用的函数通常是
Stream上的侦听器 - 你在这里有Stream并且你试图限制传递给 @ 的函数987654330@?如果是这种情况,我们应该将其视为限制流而不是函数。为此使用values.transform(throttle(Duration(seconds: 2))).listen(myFunction)。 pub.dartlang.org/packages/stream_transform 如果这不是 Stream 侦听器,您能否详细说明用例?你需要Function可以作为参数传递吗? -
我想限制函数执行,例如假设有一个按钮将向 api 发送请求,我希望该按钮始终可点击,但每次调用 1 次都会限制 api 调用例如 1 分钟,因此用户可以随意点击,但我每分钟只会发送一个请求。
-
您可以使用 StreamController 将函数调用转换为 Stream。 Mayberxdart Observable 提供了一些开箱即用的东西来做到这一点。
标签: dart flutter throttling rxdart