#delay #stream #future #duration #most #recent #debounced

debounced-wasm

debounced crate 的分支,支持 wasm

1 个不稳定版本

新版本 0.1.0 2024 年 8 月 17 日

#254WebAssembly 中排名

Download history 137/week @ 2024-08-12

137 每月下载量

MIT 协议

14KB
177

Debounced

用于构建延迟 Future 和防抖 Stream 的实用工具,在提供最新项之前等待给定的时间。

用法

此 crate 实现的功能非常简单。根据您是想延迟单个 future 还是防抖整个 stream,您应该使用 delayeddebounced

延迟单个值

如果您想延迟单个 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