【问题标题】:Future.delayed and Timer are executing all of the delayed callbacksFuture.delayed 和 Timer 正在执行所有延迟的回调
【发布时间】:2021-03-03 10:44:43
【问题描述】:

所以这就是交易。我在我的应用程序中使用 Places 自动完成 API,因此在 Textfield 的 onChanged 函数中,我为每个键入的字母向它发出请求。这花费了很多,我尝试使用 Future.delayed 来延迟这个电话。所以我将整个函数包装在 Future.delayed 中,并延迟了 2 秒。现在它等待 2 秒,但 2 秒后它会执行所有延迟调用。

例子:

输入:“纽约”(2 秒内) 结果:等待 2 秒并执行以下操作:Ne, New, New, New Y, New Yo, New Yor, New York..

所以基本上它会延迟它,然后立即执行它。我该如何解决?

PS:我确实尝试过封装 onchanged 函数本身以及负责 api 调用的函数。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    onChanged 函数将在每次更改时触发,这意味着对于键入的每个字母。 Future.delayed 不会改变这种行为,而是会延迟函数的每次调用。

    您正在寻找的是去抖动或节流功能。考虑使用提供它们的库,例如 this

    【讨论】:

    猜你喜欢
    • 2010-09-28
    • 2011-05-31
    • 2017-02-22
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2011-07-22
    相关资源
    最近更新 更多