1 个不稳定版本
新版本 0.1.0 | 2024 年 8 月 17 日 |
---|
#254 在 WebAssembly 中排名
137 每月下载量
14KB
177 行
Debounced
用于构建延迟 Future
和防抖 Stream
的实用工具,在提供最新项之前等待给定的时间。
用法
此 crate 实现的功能非常简单。根据您是想延迟单个 future 还是防抖整个 stream,您应该使用 delayed
或 debounced
。
延迟单个值
如果您想延迟单个 future 解析为已知值,可以使用 delayed
。
use debounced::delayed;
let delayed = delayed(42, Duration::from_secs(1)).await;
assert_eq!(start.elapsed().as_secs(), 1);
assert_eq!(delayed, 42);
防抖 Stream
如果您想防抖整个 stream,可以使用 debounced
。
use debounced::debounced;
let (mut sender, receiver) = futures_channel::mpsc::channel(1024);
let mut debounced = debounced(receiver, Duration::from_secs(1));
sender.send(21).await;
sender.send(42).await;
assert_eq!(debounced.next().await, Some(42));
assert_eq!(start.elapsed().as_secs(), 1);
限制
- 前置防抖。 此库目前仅实现了后置防抖。它不实现前置防抖。
许可证
版权所有 2022 Glacyr B.V.
在此软件及其相关文档文件(“软件”)的副本由任何人获得后,特此免费授予,允许任何人在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供的人这样做,但受以下条件约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论此类责任是基于合同、侵权或其他方式,源于、因或与软件或其使用或其他交易有关。
依赖关系
~0.6–1MB
~19K SLoC