RxJS (5.0rc4):暂停和恢复间隔计时器

2024-04-07

我正在使用 Rx 来保持动画时钟。每个动画帧都会将间隔刻度映射到该刻度的新值。

假设我想暂停动画。最自然的方法是以某种方式暂停时钟接收,然后在稍后恢复它。

取消订阅然后重新订阅并不是一个自然的选择,因为这个动画时钟是一个冷可观察的对象。我不想在动画恢复时重新启动动画。如果我寻求解决方法,我将不得不生成一个新的简历 rx,这会使所有公开的 API 变得非常复杂。

背压方法似乎前景并不乐观:

pause不起作用,因为我想从上次停下的地方继续,而不是向前跳。换句话说,我不想在关闭时掉落蜱虫。

pausableBuffered不起作用,因为在恢复时,它将尽快耗尽所有累积的蜱虫。

使用某种虚拟时间调度程序来完全停止时间然后恢复正常时间可能是可能的(?)

我使用的是 RxJS 5.0rc4,但我也不知道如何在 RxJS 4 上执行此操作。对于任一版本的任何建议将不胜感激。


Use switchMap on a pauser流以在原始来源和Observable.never。如果您不希望计时器向前跳转,请自行管理(使用x下文中的变量)。

function pausableInterval(ms, pauser) {
    let x = 0;
    const source = IntervalObservable.create(ms);
 
    return pauser.switchMap(
        paused => paused ? 
        Observable.never() : 
        source.map(() => x++)
    );
}

The pauser流应该发出布尔值。

未测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RxJS (5.0rc4):暂停和恢复间隔计时器 的相关文章

  • 是否有一个运算符可以作为 concatMap 但具有多个内部可观察值

    我正在使用可观察的对象来查询我的数据库 该可观察对象将返回一个数组 其中包含找到的所有匹配对象 我的问题是我想将可观察值映射到我将从另一个 API 检索的更多详细信息 我尝试了 concatMap 但它只让我在初始可观察值中嵌套 1 个可观
  • Angular2 查询参数订阅触发两次

    尝试处理 OAuth 登录场景 其中如果用户登陆页面authorization code在查询字符串中 我们处理令牌并继续or如果他们在没有该令牌的情况下登陆页面 我们会检查本地存储中是否存在现有令牌 确保其仍然有效 并根据其有效性重定向到
  • 为什么rxjs不取消我的承诺?

    我在用rxjs in my angular应用程序 当多个数据时 我并不总是按照我想要的顺序取回数据REST已拨打电话 控制器 constructor rx Observable fromPromise this getExpenses t
  • Angular 6 observables - 从 .subscribe() 函数中提取数据并在其他地方使用

    我用可观察到的东西把头撞在墙上 我能找到的几乎所有文档都是较旧的rxjs句法 我有一个可观察的 API 调用 我在其他地方调用它并订阅它 尝试用此数据填充表GET要求 如果我简单地console log my getData函数 它记录订阅
  • Angular:以可重用/干净的方法将 API 数据转换为新的数据类型

    我正在尝试将 API 响应转换为完全不同的 ViewModel 用于多个组件 a 一种解决方案是直接在 API 代理中映射 管道数据 但是如果我只想要简单的原始 API 数据 那么 API 代理的可重用性不是很好 b 此模型适配器模式可能不
  • 两个可观察量之间的差异

    假设我有两个可观察值 第一个可观察到的是某些列表的数组 id zzz other props here id aaa id 007 and more over time 第二个可观察对象是一组被忽略的列表 id 007 only id no
  • 从角度服务通过管道传输时,rxjs catchError 不起作用

    使用 redux 和 Angular 我有以下效果 Effect public authenticate Observable
  • Angular:仅刷新令牌一次

    我使用带有刷新令牌策略的 JWT 作为身份验证 并且我的 Angular 客户端中有一个拦截器 它将令牌作为标头发送 我在发送之前检查是否过期 并在需要时使用我的refreshToken刷新令牌 问题是当发送 2 个 或更多 请求时 两个请
  • RxJS v5 中的速率限制和计数限制事件,但也允许传递

    我有很多事件要发送到服务 但请求有速率限制 每个请求都有计数限制 每秒 1 个请求 bufferTime 1000 每个请求 100 个活动项目 bufferCount 100 问题是 我不确定如何以有意义的方式将它们组合起来 允许通过 让
  • 如何在角度中对取消订阅功能进行单元测试

    我想找到一种方法来测试订阅和主题上的取消订阅函数调用 我想出了一些可能的解决方案 但每一种都有优点和缺点 请记住 我不想出于测试目的而更改变量的访问修饰符 通过反射访问组件的私有变量 在这种情况下 我有一个存储订阅的私有类变量 组件 ts
  • Angular 5 订阅和取消订阅 Observable

    我必须从两个订阅获取数据 但我总是得到第一个订阅的数据 我有一个数据共享服务 import Injectable from angular core import BehaviorSubject from rxjs BehaviorSubj
  • 使用 Angular 5 和 RxJS 观察带有过滤器的数组

    我正在创建一个简单的论坛 我正在寻找过滤帖子 我在 RxJS 中使用 pipe 和 filter 时遇到一些问题 我试图 从内存中检索 api 帖子列表api posts 当与 http get 一起使用时 它返回一个Observable
  • 获取所有当前(活动)订阅

    是否可以获取所有 活动 订阅而不手动存储它们 我想unsubscribe所有 活动 订阅 并且不想在数组或变量中引用它们中的每一个 我取决于你使用的是Subject还是Observable 但可能没有办法 自动 做到这一点 观测值 我不认为
  • 从打字稿和 Angular 中的 Observable 获取字符串值

    我想从 Observable 获取字符串值并将该值从函数返回给调用者函数 例如 我有一组键 想一一获取所有键的值 字符串 并将其显示在具有菜单栏的 html 组件中 这是 ts 文件 key list component ts public
  • 如何处理解析器中的错误

    我正在尝试使用解析器来打造更好的用户体验 在幸福的道路上 一切都进展顺利 我似乎无法弄清楚如何处理异常 我的解析器调用一个服务 该服务会访问一个 webapi 项目 一个例子 Foo解析器 resolve route ActivatedRo
  • 在 Angular 中使用异步管道设置选择元素的选定项目

    角度专家 我试图理解 Angular 中的异步管道 但我陷入了一个基本场景 我在用户界面中有两个选择元素 一个包含帖子 一个包含相关评论 我想将一个帖子 最后一个 设置为显示帖子的选择元素的最初选择的帖子 并且我想使用所选项目来过滤第二个选
  • Pipe 和 Tap VS 使用 ngxs 订阅

    我正在玩管道并订阅 如果我使用带有水龙头的管道 则控制台中不会登录任何内容 如果我使用订阅 它就可以工作 那么我做错了什么 import Observable from rxjs import tap take from rxjs oper
  • RxJS - 从可观察对象中获取最后 n 个元素

    我想从可观察对象中获取最后 3 个元素 假设我的时间线是这样的 a b c d e f g h i j gt where a b c d e f g h i j are emitted values 每当发出新值时 我想立即获取它 因此它可
  • 错误:类型 typeof Observable 上不存在属性计时器

    代码如下 import Component from angular2 core import Observable from rxjs Rx Component selector my app template Ticks every s
  • Angular 5 中使用 rxjs 进行持久订阅

    我对 Angular 5 中的 rxjs 仍然有点陌生 并且很难表达我的问题 我仍然希望得到一些提示 我经常会得到相同的设置 多个组件显示相同的数据 访问数据的单个服务 现在通过 Observables 接收数据时我有 2 个选择 a 订阅

随机推荐

  • 验证 Rails 中的参数

    在我的 Rails 应用程序中 我想验证filter and post type params 两者都是可选的 但如果它们存在 则它们必须具有一个值 并且必须具有与有效值数组中的一个相匹配的值 在我的控制器中 我有两种检查它们的方法 def
  • 使用 ng-change、AngularJS 进行日期输入验证

    我正在使用 AngularJS 和AngularJS 引导程序 http angular ui github io bootstrap 在我的页面中 我有一个日期选择器指令 如下所示 div class p class input grou
  • ASP.NET 5 Identity 3 用户在应用程序重新启动后注销

    我们正在使用 ASP NET Identity 3 我们的用户会随机自动注销 为了重现此问题 我尝试重新启动应用程序 所有用户都退出 即使是那些已检查过的用户Remember me 它只发生在生产中 在开发环境中运行良好 Update 我们
  • R 包拼凑:行/列标题

    有没有办法使用 patchwork 包按行或列添加标题来组合绘图 前任 安排为 拼凑 是的 有一种方法可以在生成的图的排列中放置行或列的标签patchwork通过使用textGrob正如评论之一所建议的 p1 lt ggplot iris
  • $this->post codeigniter 不适用于其余 api

    我尝试与 this gt post 获取以 json 格式通过 post 发送的数据 例如 我无法得到任何结果 this gt post name 这是代码
  • Python“正则表达式”模块:模糊值

    我正在使用 模糊匹配 功能Regex https pypi python org pypi regex 模块 如何获得 匹配 的 模糊度值 它指示模式与字符串的差异程度 就像 Levenshtein 中的 编辑距离 一样 我以为我可以获取
  • 添加 const 泛型时的“不受约束的泛型常量”

    我如何添加 const 泛型 假设我有一个 foo 类型 pub struct foo
  • 如果类型参数的顺序错误,是否可以将类型设为类的实例?

    考虑以下类型 data SomeType m a SomeType m Integer a 我们可以使用以下代码轻松地将该类型设为 Functor 的实例 instance Functor SomeType m where fmap f S
  • 使用递归函数进行并行编程?

    问题背景 我正在尝试编写一个利用多核处理器和并行处理的难题解决算法 然而 理想 最简单的解决方案是简单的递归函数 分解解决方案以利用并行处理的最佳方法是什么AND递归函数 下面的代码是一个简单的解谜算法的解决方案 它工作正常 此示例中的谜题
  • 如何使用java将阿拉伯语单词插入mysql数据库

    我有一个java应用程序 想要将阿拉伯语单词插入mysql数据库 我的代码如下 Connection con null String url jdbc mysql localhost String db students String dr
  • 如何自定义 YouTube 视频的结束时间?

    我正在尝试弄清楚如何为嵌入的 YouTube 视频指定自定义结束时间 我知道我可以通过添加来自定义开始时间开始 30 但我还没有看到任何与结束时间有关的内容 我需要能够为我正在构建的网络应用程序执行此操作 因此如果 YouTube 无法提供
  • Jekyll 插件不工作

    我开发了一个简单的 Jekyll 插件 用于生成类别页面 它在我的本地系统上运行良好 但在 github 站点上不起作用 这是插件的来源 https github com madhur madhur github com blob mast
  • 对于新 XPage 开发人员来说,最重要的 3 个 XPage 性能技巧是什么?

    您会告诉刚接触 XPage 的开发人员做哪 3 件事 以帮助最大限度地提高 XPage 应用程序的性能 Tim Tripcony 给出了很多建议
  • 如何使用 Drive Rest API 读取云端硬盘照片

    我正在尝试使用 Google Apps 脚本中的 Drive REST API 读取 Google Photos 代码如下所示 function myFunction var files Drive Files list maxResult
  • Microsoft.Owin.Cors 中间件与 ASP.NET Web Api 2.0 一起使用时会做什么?

    我有一个带有令牌身份验证的 ASP NET Web Api 2 0 项目 所有内容主要按照本文完成 使用 ASP NET Web API 2 Owin 和 Identity 进行基于令牌的身份验证 http bitoftech net 20
  • ASP.NET MVC 性能

    我发现一些疯狂的评论称 ASP NET MVC 比 ASP NET WebForms 快 30 倍 真正的性能差异是什么 是否经过测量以及性能优势是什么 这是为了帮助我考虑从 ASP NET WebForms 迁移到 ASP NET MVC
  • 将 Docker 容器限制为单个 cpu 核心

    我正在尝试构建一个在一致条件下运行代码片段的系统 我认为实现这一点的一种方法是在具有相同布局的 docker 容器中运行各种程序 保留相同数量的内存等 但是 我似乎不知道如何保持 CPU 使用率一致 我似乎能找到的最接近的是 cpu 共享
  • 压缩过滤器+MVC+Yahoo YSlow

    我一直在使用雅虎的 YSLOW 来尝试让我的页面运行得更快AgentX http www agentx co nz 我正在使用下面的压缩过滤器 当我通过 Visual Studio 运行该网站时 YSLOW 说所有文件都已压缩 当我查看实时
  • C#:从 XML 读取/写入日期时间

    我需要知道写作 阅读的最佳方式DateTime传入 传出 XML 我应该直接写吗DateTime转换为 XML 或DateTime ToString 转换为 XML 第二个问题是如何从 XML 中读取日期元素 铸造可以用于此目的吗 例如 D
  • RxJS (5.0rc4):暂停和恢复间隔计时器

    我正在使用 Rx 来保持动画时钟 每个动画帧都会将间隔刻度映射到该刻度的新值 假设我想暂停动画 最自然的方法是以某种方式暂停时钟接收 然后在稍后恢复它 取消订阅然后重新订阅并不是一个自然的选择 因为这个动画时钟是一个冷可观察的对象 我不想在