反应式框架/DoubleClick

2024-01-22

我知道有一个简单的方法可以做到这一点 - 但今晚它打败了我......

我想知道两个事件是否在 300 毫秒内发生,例如双击。

在 300 毫秒内单击鼠标左键两次 - 我知道这就是响应式框架的构建目的 - 但该死的是,如果我能找到一个好的文档,其中包含所有扩展运算符的简单示例 - Throttle、BufferWithCount、BufferWithTime - 所有这些都不是' 为我做这件事......


The TimeInterval方法将为您提供值之间的时间。

public static IObservable<Unit> DoubleClicks<TSource>(
    this IObservable<TSource> source, TimeSpan doubleClickSpeed, IScheduler scheduler)
{
    return source
        .TimeInterval(scheduler)
        .Skip(1)
        .Where(interval => interval.Interval <= doubleClickSpeed)
        .RemoveTimeInterval();
}

如果您想确保三次点击不会触发值,您可以使用Repeat在热可观察上(我用过FastSubject此处,因为点击全部来自同一个线程,因此不需要正常主题的沉重):

public static IObservable<TSource> DoubleClicks<TSource>(
    this IObservable<TSource> source, TimeSpan doubleClickSpeed, IScheduler scheduler)
{
    return source.Multicast<TSource, TSource, TSource>(
        () => new FastSubject<TSource>(), // events won't be multithreaded
        values =>
        {
            return values
                .TimeInterval(scheduler)
                .Skip(1)
                .Where(interval => interval.Interval <= doubleClickSpeed)
                .RemoveTimeInterval()
                .Take(1)
                .Repeat();
        });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反应式框架/DoubleClick 的相关文章

随机推荐

  • Common Lisp 格式中可重复的差一问题

    I have format s tabs VT根据是否换行而表现不同 位于行首或行尾 我想知道为什么 不同之处在于 当换行符位于行尾时 行中似乎有一个额外的空格仅一审制表位的 下面举例说明 示例中唯一的区别在于格式控制字符串 它是 A VT
  • Chrome 扩展 PHP 无法运行

    我想在 Chrome 扩展中使用 PHP 我尝试将background html 更改为background php 但这不起作用 我怎样才能做到这一点 你不能这样做 PHP 是一种服务器端语言 这将要求所有用户安装 PHP 解释器 这是不
  • 阻止 SELECT 直到结果可用

    我正在尝试编写一个用于 长轮询 的 PHP 脚本 当新行添加到 Postgres 数据库表时返回数据 有没有办法让 SELECT 查询仅在返回结果时返回 否则阻塞 或者我应该使用数据库之外的另一种信号机制 看看听 通知 NOTIFY 命令发
  • 如何摆脱 Golang 中的无限循环

    我正在用 Go 编写一个程序来猜测随机数 我遇到了 for 循环的问题 我无法阻止 for 循环不断迭代 满足条件后如何跳出循环 for loop true fmt Println read number i n if i ans fmt
  • Xamarin 表单 HttpClient 卡住

    我正在尝试从 soundcloud API 获取响应 这是我的代码 public static async Task
  • 如何使用 Pandas 按月和年对行进行分组和计数?

    我有一个数据集 其中包含姓名 身高 体重和出生日期等个人数据 我会构建一个图表 其中包含特定月份和年份出生的人数 我使用 python pandas 来完成此任务 我的策略是尝试按年和月进行分组并使用计数进行添加 但我得到的最接近的是按年或
  • C++ 多重继承内存寻址问题

    请忽略 include 部分 假设它们已正确完成 另外 这可能是特定于实现的 但 vtable 的概念也是如此 但我只是很好奇 因为它增强了我可视化多重继承 顺便说一下 我使用的是MinGW 4 4 0 初始代码 class A publi
  • Spring boot WAR部署在Tomcat中启动失败

    我试图将 Spring Boot 应用程序打包为战争 但是当我尝试在 tomcat 中部署战争并尝试启动它时 它会抛出一个异常 指出异常启动过滤器 java lang AbstractMethodError 我的Spring boot版本是
  • Objective-C - char 和 unichar 之间的区别?

    我搜索了很多关于差异的信息unichar and char但没有得到任何明确的概念 还告诉我差异char and unichar 使用时char and unichar char是 8 位 表示任意 8 位数字 UTF 8 代码单元或其他字
  • 我如何终止 iphone 中的 api 调用

    我是 iPhone 新手 我遇到了一个新问题 我的应用程序中有一个 api 交互 该 api 需要很长时间才能加载 当我手动终止我的应用程序时 在加载该 api 时我的应用程序关闭 然后我会打开我的应用程序 它会立即关闭 任何人都可以帮助我
  • 单击按钮 Xamarin.forms 将子项添加到父项

    我一直在尝试在 Android 中单击按钮时将标签视图添加到堆栈布局中 但它会抛出空指针异常 以下是我想要实现的目标 任何人都可以请建议如何在 xamarin forms 中实现这一目标 C 中的 Xamarin Forms 代码 Stac
  • 将 postgresql hstore 转换为 php 数组

    是否有一个好的 php 代码片段可以将 postgresql hstore 转换为 php 数组 它将正确地将 hstore 中未加引号的 NULL 转换为 php NULL EG 假设我们有以下 hstore 字符串 k1 gt v1 k
  • Xcode 7 不再有配置文件刷新按钮 - 那么如何将新的设备 ID 添加到配置文件中?

    我刚刚向配置门户添加了一个新设备 以前 下一步是手动更新相关配置文件以添加此新设备 但现在似乎这是由 Xcode 自动处理的 并且不再可能通过配置门户编辑配置文件以包含新设备 门户中不再有编辑按钮 好的 但是最新版本的 Xcode Xcod
  • 对静态函数的未定义引用

    当我在 A 类中创建一个静态函数并且我想从 B 类函数中调用它时 我遇到了一个奇怪的问题 我明白了 对 A funcA int 的未定义引用 这是我的源代码 a cpp include a h void funcA int i std co
  • 如何在flutter中检索sqlite数据库中的图像数据?

    我想在 sqlite 中检索图像数据 我使用下面的代码 var image await ImagePicker pickImage source imageSource List
  • 片段中的 MapActivity

    我有一个FragmentActivity public class parking extends FragmentActivity 它有 3 个选项卡 第二个和第三个是列表 已解决 public class tab2 extends Fr
  • Java中如何从另一个类获取类的特定实例?

    我创建了以下课程main方法 它创建新的实例Application和实例ApplicationModel ApplicationView and ApplicationController对于这个特殊的Application public
  • Shiny 应用程序中的“read_excel”

    我有一个闪亮的应用程序 使用read xlsx包中的函数xlsx 一切正常 但我想改为read excel from readxl 希望它会更快并且能够应对大文件 ui part fileInput inputFile Upload fil
  • 手部检测 Opencv

    我正在尝试使用 OpenCV 和 C 检测手 我能够找到图像中存在人手的手的轮廓 正图像 基本上我找到最大的轮廓并将其视为手部轮廓 假设在给定的图像中不存在手 那么我将采用任何轮廓并将其视为手 所以我开始思考我可以使用 haar 级联来确定
  • 反应式框架/DoubleClick

    我知道有一个简单的方法可以做到这一点 但今晚它打败了我 我想知道两个事件是否在 300 毫秒内发生 例如双击 在 300 毫秒内单击鼠标左键两次 我知道这就是响应式框架的构建目的 但该死的是 如果我能找到一个好的文档 其中包含所有扩展运算符