暂停,恢复时给出上次暂停的值

2023-11-26

我有一个热Observable由套接字供电。我可以使用pausable暂停套接字馈送。但是,一旦我“取消暂停”可观察对象,我需要显示在订阅暂停时套接字可能发送的最后一个值。我不想跟踪套接字手动发送的最后一个值。这怎么可能暂停?

从文档中的示例,请参阅下面的注释:

var pauser = new Rx.Subject();
var source = Rx.Observable.fromEvent(document, 'mousemove').pausable(pauser);

var subscription = source.subscribe(
    function (x) {
        //somehow after pauser.onNext(true)...push the last socket value sent while this was paused...
        console.log('Next: ' + x.toString());
    },
    function (err) {
        console.log('Error: ' + err);
    },
    function () {
        console.log('Completed');
    });

// To begin the flow
pauser.onNext(true); 

// To pause the flow at any point
pauser.onNext(false);  

你甚至不需要pausable去做这个。 (另请注意,您标记了 RxJS5,但是pausable仅存在于RxJS 4)。您只需要转换您的pauser进入更高的秩序Observable:

var source = Rx.Observable.fromEvent(document, 'mousemove')
  // Always preserves the last value sent from the source so that
  // new subscribers can receive it.
  .publishReplay(1);

pauser
  // Close old streams (also called flatMapLatest)
  .switchMap(active => 
    // If the stream is active return the source
    // Otherwise return an empty Observable.
    Rx.Observable.if(() => active, source, Rx.Observable.empty())
  )
  .subscribe(/**/)

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

暂停,恢复时给出上次暂停的值 的相关文章

  • 顺序订阅可观察数组

    在这里 我用过forkJoin从 rxjs 并行订阅可观察数组 但我想一一订阅 最好的解决方案是什么 下面是我的代码 var observables Observable forkJoin observables subscribe gt
  • Angular 5 订阅和取消订阅 Observable

    我必须从两个订阅获取数据 但我总是得到第一个订阅的数据 我有一个数据共享服务 import Injectable from angular core import BehaviorSubject from rxjs BehaviorSubj
  • rxjs:定期执行一些操作,中间有特定的延迟

    客户端应用程序向服务器发送请求 这可能需要很长时间才能完成 一旦请求完成或失败 客户端应该等待一段时间 即10秒 然后再次发送请求 目前的工作解决方案是这样的 appRequest new Subject ngOnInit void thi
  • Angular 4显示当前时间

    在 Angular 4 变化检测系统中显示当前时间的正确 规范 方法是什么 问题如下 根据定义 当前时间每时每刻都在不断变化 但 Angular 4 变更检测系统无法检测到它 因此 我认为有必要明确调用ChangeDetectorRef d
  • Angular 自定义错误处理程序未从 Promise 获取错误类型

    当从承诺中抛出每个错误时 我的自定义错误处理程序都会丢失其类型 import HttpErrorResponse from angular common http import ErrorHandler Injectable Injecto
  • 从打字稿和 Angular 中的 Observable 获取字符串值

    我想从 Observable 获取字符串值并将该值从函数返回给调用者函数 例如 我有一组键 想一一获取所有键的值 字符串 并将其显示在具有菜单栏的 html 组件中 这是 ts 文件 key list component ts public
  • 非规范化 ngrx 存储 - 设置选择器?

    我目前正在 ngrx 项目中处理一个有点复杂 深层 的结构 它可以被认为是父对象的数组 具有多个级别的子对象 它在服务器端标准化 扁平化 我的商店中的功能看起来像这样 rootObjs level1 byId lvl1 1 id lvl1
  • RXJS while 循环进行分页

    我尝试查询所有人员的数据swap api http swapi co URL swapi co api people 返回一个带有 people 数组的对象 以及我从中获取下一个数据的 URL swapi co api people pag
  • RxJS Angular2 在 Observable.forkjoin 中处理 404

    我目前正在链接一堆 http 请求 但是在订阅之前我无法处理 404 错误 My code 在模板中 service getData subscribe data gt this items data err gt console log
  • 了解 rxjs 中的背压 - 仅缓存 5 个等待上传的图像

    我正在开发一个节点项目 需要提交数千张图像进行处理 在将这些图像上传到处理服务器之前 需要调整它们的大小 因此我有一些类似的内容 imageList map image gt loadAndResizeImage merge 3 map i
  • Angular2 RxJS从地图函数调用类函数

    我是 Angular 2 和 Observables 的新手 所以如果我的问题微不足道 我深表歉意 无论如何 我正在尝试使用 RxJS 测试 Angular 2 HTTP 客户端 虽然我让它工作了 但我需要向我当前正在处理的服务添加更多逻辑
  • rxjs 7 更新 - 主题 - 预期 1 个参数,但得到 0 个

    我将 rxjs 从版本 6 x x 更新到 7 x x 但出现以下错误 src app app component ts 中出现错误 12 19 预期有 1 个参数 但得到 0 个 当试图next一个空值Subject destroy ne
  • 创建一个简单的调度程序

    我将如何创建一个简单的调度程序 将每个项目延迟一秒 我想将它用于 Observable 是的 我知道这可以通过多种其他方式完成 我只是想使用自定义调度程序来完成它 这里有一些相关教程 http codebetter com matthewp
  • 如何在 Angular httpClient 拦截器中使用异步服务

    使用Angular 4 3 1和HttpClient 我需要将异步服务的请求和响应修改为httpClient的HttpInterceptor 修改请求的示例 export class UseAsyncServiceInterceptor i
  • RxJS 比命令式更快吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对函数式编程和函数式反应式编程比较陌生 我读了很多遍函数式反应式编程的强大力量 好的 可读 避免副作用等 但是 我不知道如何以功能
  • 使用许多嵌套的 switchMap 是不好的做法吗?

    我有 HTTP 拦截器 在该拦截器中 在更改请求之前 我需要打开一个加载程序 真正让我担心的是我最终会得到很多switchMaps why 加载器是异步的 我还需要将从拦截器传递的消息转换为加载器服务 翻译消息也是异步的 在拦截器中 我应该
  • 为什么 `BehaviorSubject` 不发出最后一个值

    The 关于BehaviorSubject的文档 http reactivex io documentation subject html声明它应该返回最后发出的值 无论我何时订阅 但它不会为我返回它 const ofObservable
  • 使用 RxJS 可暂停缓冲区

    我正在尝试使用 RxJS 流实现可切换的自动保存功能 目标是 启用自动保存后 将更改发送到服务器 当自动保存被禁用时 缓冲更改并在自动保存重新启用时将它们发送到服务器 这是我遇到的情况 autoSave new BehaviorSubjec
  • 延迟加载:Observable 未订阅

    在我的 Angular 应用程序中 我有一个父组件 控制台 组件 html div class main div
  • 带前导选项的 BufferTime

    我有一些想要缓冲的事件 但我只想在第一个元素之后缓冲 bufferTime Input over time 1 2 3 4 5 6 Output over time 1 2 3 4 5 6 有没有办法做到这一点 我认为这可以通过将流分为两部

随机推荐

  • 在 Haskell 中检索文件大小的 hFileSize 更快替代方案?

    我想知道如何以最少的开销获取 haskell 中文件的大小 现在我有以下代码 getFileSize FilePath gt IO Integer getFileSize x do handle lt openFile x ReadMode
  • PHP 数组的平均时间

    如何从一组时间中计算出平均时间 我有一个看起来像这样的数组 17 29 53 16 00 32 我希望达到这个结果16 45 12使用 PHP date H i s array sum array map strtotime array c
  • 如何在 Google Chrome 中查看 HTTP 标头?

    在 9 x 之前 标题位于开发人员工具中的资源下 但现在我在任何地方都找不到它 我不确定您的确切版本 但 Chrome 有一个 网络 选项卡 其中包含多个项目 当我单击它们时 我可以在选项卡右侧看到标题 Press F12 on windo
  • 我成功地从 C# 调用了 advapi32 的 LsaEnumerateAccountRights()。现在如何解组它返回的 LSA_UNICODE_STRING 数组?

    它是一个指向数组的指针LSA UNICODE STRING结构 我发现一些代码可以做相反的事情 即创建一个LSA UNICODE STRING来自 C 字符串 您可以在下面的帮助程序代码部分中看到这一点 我正在做什么 包括打电话给LsaEn
  • 入口 nginx 缓存

    我试图弄清楚如何使用 nginx 代理缓存和一些特定的规则 例如 当我托管 Ghost 或 Wordpress 时 我不想缓存管理部分 使用服务器片段 我尝试了很多不同的组合 但管理部分的缓存仍然存在问题 nginx ingress kub
  • 如何在 Grails 中创建包含所有 i18n 消息的映射

    我需要它在控制器中渲染它的一部分 例如 class MessageController def index def messageMap listAlli18nMessages the question render contentType
  • Python 3.5 与 Python 2.7:模块导入子模块

    过去几个小时我一直在谷歌上搜索这个问题 但在任何地方都找不到类似的问题 此外 2 7 和 3 5 的文档似乎相同 因此我认为这种行为没有记录 这是我的目录结构 project project py api init py subapi in
  • maven-jaxb2-plugin VS jaxb2-maven-plugin 用于多个模式

    我有多个 xsd 模式 我想将它们解组到不同的包中same folder target generated sources xjc 我尝试了这两个插件 似乎都可以很好地使用这两种配置 但在 maven jaxb2 plugin 的情况下 e
  • MYSQL左连接结果的最后一行

    我需要一些 MYSQL 帮助 我有一个名为 Tickets 的表和一个名为 statusLogs 的表 我该如何 select t sl statusId from ticket LEFT JOIN select from statusLo
  • 使用扩展方法的实体框架分页很慢?

    我在 C 的实体框架中遇到查询缓慢的问题 我创建了一个名为 Page 的扩展方法来处理分页 但是当我使用它时 查询变得非常慢 如果我只是执行 Skip page Value pageSize Value Take pageSize Valu
  • 当目标是类型时,为什么 Coq 不允许反转、析构等?

    When refine正在运行一个程序 我试图通过以下方式结束证明inversion on a False假设当目标是Type 这是我尝试做的证明的简化版本 Lemma strange1 forall T Type 0 gt 0 gt T
  • 如何实现一个具有placement new和emplace功能的简单容器?

    我需要实现一个容器来容纳一定数量的元素 并且出于某种原因 它必须在没有任何堆分配的情况下工作 另一个要求是 容器元素不应以任何方式复制或移动 它们必须直接构建到容器分配的内存中 为此 我决定使用placement new并将内存管理完全委托
  • 地理点之间的距离

    我在计算两个地理点之间的距离时遇到问题 地理点是 position1 mapView getProjection fromPixels int e getX int e getY 另一个 double lat 35 1064 double
  • 如何找到两个数据库之间的差异? [关闭]

    Closed 这个问题是无关 目前不接受答案 我正在尝试将更改从数据库复制到数据库 但是我不知道这些更改到底是什么 是否有一个 SQL 脚本可以查找数据库之间不同的对象 然后生成一个脚本来更新 DatabaseB 以匹配 DatabaseA
  • 如何读取 UISlider 拇指图像的大小

    我试图在 UISlider 中的拇指上方居中放置一个额外的 UIView 为此 我需要拇指图像的宽度 在 iOS6 中 这工作得很好 我可以用 CGFloat thumbWidth self navSlider currentThumbIm
  • Java:如何确定正则表达式模式匹配失败的原因?

    我正在使用正则表达式来匹配模式是否匹配 但我也想知道它何时失败 例如 假设我有一个模式 N 1 3 Y 我将它与字符串 NNNNY 进行匹配 我想知道失败是因为N太多了 或者 如果我将其与字符串 XNNY 进行匹配 我想知道它失败是因为字符
  • 如何正确地在单词前面加上“a”和“an”?

    我有一个 NET 应用程序 给定一个名词 我希望它正确地为该单词添加 a 或 an 前缀 我该怎么做呢 在您认为答案是简单地检查第一个字母是否是元音之前 请考虑以下短语 一个诚实的错误 一辆二手车 下载维基百科 解压缩它并编写一个快速过滤程
  • 将base64图像数据转换为angularjs中的图像文件

    在 AngularJS 中将 Base64 文件转换为图像时文件损坏 任何人都可以建议我如何在 AngularJS 中将 Base64 文件转换为图像 我正在使用这种方法将base64文件转换为图像 var imageBase64 imag
  • 如何分割一个大的 xml 文件?

    我们将 记录 导出到 xml 文件 我们的一位客户抱怨该文件太大 他们的其他系统无法处理 因此 我需要拆分文件 同时在每个新文件中重复 标题部分 因此 我正在寻找一些东西 可以让我为应该始终输出的部分定义一些 xpath 并为 行 定义另一
  • 暂停,恢复时给出上次暂停的值

    我有一个热Observable由套接字供电 我可以使用pausable暂停套接字馈送 但是 一旦我 取消暂停 可观察对象 我需要显示在订阅暂停时套接字可能发送的最后一个值 我不想跟踪套接字手动发送的最后一个值 这怎么可能暂停 从文档中的示例